我这样做:
Imgproc.Canny(mGraySubmat, mIntermediateMat, 50, 100);
当我错的时候阻止我:现在让我们说Canny检测到类似于矩形的边缘。现在我从这个矩形内的种子点开始,然后走到北,南,东,西,检查每个像素值,直到到达边缘。
查看结果:
图片可以在http://i.stack.imgur.com/JWVJW.png
找到走向北方似乎有效。在坐标处找到值为255的像素:x,y = 239,346 - >右
南:在x处找到值为255的像素,y = 239,488(实际上是488,因为480是最大值) - >错误
东:在x处找到值为255的像素,y = 342,388 - >错误的
West:屏幕外没有找到像素...... - >错
问题:怎么了?为什么我走过它时没有检测到边缘像素。
重要提示:图片的顶部和左侧有一个尺寸为100像素的刻度。原点位于左上角,坐标为x,y = 100,350,右边是100像素,右边是350像素。
答案 0 :(得分:1)
我用mIntermediateMat.get(x,y)获取了像素颜色值。那是错的。由于函数定义为Mat.get(rows,cols),因此它将是mIntermediateMat.get(y,x)。看到不同?我没有。很多失去的时间和另一个愚蠢的奖励对我来说。