Я хочу перебрать бинаризованный cv::Mat
и сохранить все координаты пикселей со значением 255
.Как сохранить векторные координаты белых пикселей?
cv::Mat bin;
std::vector<cv::Point2i> binVec;
int h = 0;
int white = 254; //Just for comparison with pointer of Matrix value
for (int i = 0; i < bin.rows; i++, h++) {
for (int j = 0; j < bin.cols; j++, h++) {
int* p = bin.ptr<int>(h); //Pointer to bin Data, should loop through Matrix
if (p >= &white) //If a white pixel has been found, push i and j in binVec
binVec.push_back(cv::Point2i(i, j));
}
}
Этот снипп не работает, и я не знаю почему.
Исключение бросили в 0x76C6C42D в example.exe: исключение Microsoft C++: cv :: Исключение в ячейке памяти 0x0019E4F4.
Необработанное исключение в 0x76C6C42D в example.exe: исключение Microsoft C++: cv :: Исключение в ячейке памяти 0x0019E4F4.
Так как я могу считать h
и пусть указатель работает?
Вы использовали отладчик? – Drop
вы не инициализируете 'h' – user463035818
oh yea, когда я сжал свой код, я забыл взять инициализацию, я отредактирую код. – Flippy