Пример результатов
У меня есть это:
Canny(test,edges,0.9*av[0],2*av[0],3,true);
for(int i=0;i<edges.rows;i++){
for(int j=0;j<edges.cols;j++){
cv::Vec2w& elem = edges.at<cv::Vec2w>(i,j);
std::cout << elem[0] << " , "<<elem[1] << std::endl;
}
}
переменная ребер (cv :: Mat) хранит результат функции cv :: Canny (двоичное изображение) .. когда я пытаюсь увидеть значения пикселей с помощью cv :: Vec2w, у меня есть это для результата:
6408, 2058
1817, 7433
1540, 282
5386, 1024
15, 4867
768, 275
1285, 512
2, 0
0, 0
1, 256
с резюме :: Vec2
0, 0
0, 0
0, 0
0, 0
0, -256
255, -256
0, 0
0, 0
с резюме :: Vec2i
0, 0
0, 0
-16777216, -16776961
0, 0
0, -256
-1, 65535
0, -16777216
65535, 0
0, 0
и так далее ...
Но, например, если я напишу это изображение (imwrite ("image.pgm", edge)), а затем прочту с armadillo (изображение представляет собой одноканальное двоичное изображение), я получу в результате матрица (nx1) со значениями от 0 до 255 .. я знаю .. формат обеих библиотек различен, но .. я предпочитаю: двоичное изображение всегда имеет значения 0 и 255 в одном канале ....