你这种方法 个人觉得不好 比如你说 扫到白色部分比较多的地方确定为左边边界?? 那你怎么确定 不是左边界的右边 像你这种小的像素点的 腐蚀下 消除细小的点 就可以了 或者 边缘检测canny 设定个阈值(你可以试试几个阈值) 就可以了 然后 切割
如果边界像素值为0,其他地方不为0,可以先二值化,将背景置为1,然后图像的矩阵取反,即 I = ~I,连通区域标记,最后可以用bwboundaries函数提取顺时针排列的边界点像素坐标,具体形式可以help bwboundaries,有例子很好懂
1、首先引入中值滤波,降低图像细节,便于图像整体边缘的提取。
2、其次根据图像的大小设置中值滤波系数,初步具备处理不同的兼容能力。
3、最后引入连通域判断,对占图像面积较小的边缘,判定为细节,进行弱化处理,位于边缘的内容即可提取连通域。
IplImage img=cvLoadImage("E:/研究生/opencv/图像与视频/ricepng");得到的是以一个三通道图像,你上面函数都写了如果不是单通道就会跳出返回null,当然没结果,
要改成这样
IplImage img=cvLoadImage("E:/研究生/opencv/图像与视频/ricepng",0);
而且, cvShowImage("Example5",doCanny(img,30,90,1));中的1要改成3吧,你大小弄个11这是怎么回事??看不懂啊
以上就是关于Matlab二值图像怎么可以提取出道路的两条边界线全部的内容,包括:Matlab二值图像怎么可以提取出道路的两条边界线、用matlab对一张圆的图像轮廓提取后,知道了圆的边界,怎么确定边界上点的像素坐标高分悬赏啊啊啊、位于图片边缘的内容怎么提取连通域等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)