我这样做:如何在Mat对象中查找Canny边缘检测到的像素?
Imgproc.Canny(mGraySubmat, mIntermediateMat, 50, 100);
阻止我当I'm错误:
1.现在边缘应该是mIntermediateMat。
2. mIntermediateMat中的所有像素应具有0或255的颜色值。(我使用mIntermediateMat.get(x,y)获取值)。
3. mIntermediateMat.type()=>垫[480 * 640 * CV_8UC1,isCont =真,isSubmat =假,nativeObj = 0x139ec0,DATAADDR = 0x4453d010]
和
mGraySubmat.type()=>垫[480 * 640 * CV_8UC1,isCont = true,isSubmat = true,nativeObj = 0x1e8308,dataAddr = 0x450b4010]
现在让我们说Canny检测到类似于矩形的边。现在我从这个矩形内的种子点开始,步行到北,南,东,西,并检查每个像素值,直到到达边缘。
查看结果:
图片可以在这里http://i.stack.imgur.com/JWVJW.png
发现步行到北似乎工作。在坐标:x,y = 239,346 - >右边找到值为255的像素南:在x处找到值为255的像素,y = 239,488(实际上488不能,因为480是最大) - >错误
东:像素在x处找到值255,y = 342,388 - >错误
West:找不到像素,出现屏幕... - >错误
问题:什么错误?为什么当我走过它时没有检测到边缘像素。
重要提示:在图片的顶部和左侧有一个尺寸为100像素的比例尺。原点位于左上角,x,y = 100,350的坐标是右100像素和下像素350像素。