duzhijun1983 发表于 2007-11-6 08:48

边缘提取不完整如何解决



我用普通的edge()提取出来的图像有两条边缘没有被提取出来,如图上红色粗线标注出来的。
想请问怎么解决呢。
我的代码:

f=imread('pdf417.jpg');
f=rgb2gray(f);
=edge(f,'roberts', [],'both');
=edge(f,'sobel', 'both');
=edge(f,'prewitt',[],'both');
g4 = edge(f,'log');
g5 = edge(f,'canny');
gg=g1+g2+g3+g4+g5;
imshow(gg);

谢谢指教啊!

[ 本帖最后由 eight 于 2007-11-6 09:27 编辑 ]

花如月 发表于 2007-11-6 08:56

不可能有哪种函数提取的很完整,该进方法似乎都是针对某种特殊的情形。想想你边上的2条线为什么提取不出来?然后找些资料,看看别人都是怎么解决的

duzhijun1983 发表于 2007-11-6 08:57

我就是用普通的edge()来提取的,那哪位大哥知道是哪里出了问题不?

eight 发表于 2007-11-6 09:29

原帖由 duzhijun1983 于 2007-11-6 08:57 发表 http://www.chinavib.com/forum/images/common/back.gif
我就是用普通的edge()来提取的,那哪位大哥知道是哪里出了问题不?
每种算子都有它的适用范围,你求边缘用 edge 没错,却用了5种算子,然后把结果相加,效果可想而知。建议认真了解每种算子的特点,然后从中选择一种适合你的

duzhijun1983 发表于 2007-11-6 09:42

我分别用各种方法都试了一次,但是每一种方法都不能检测出那两条线,大哥大姐,到底该怎么办呀~~:'( :'(

duzhijun1983 发表于 2007-11-6 12:59

我尝试用了所有的算子,并且改变参数也没有用,就是的不出中间的两条垂直线,应该怎么办啊?

eight 发表于 2007-11-6 14:49

原帖由 duzhijun1983 于 2007-11-6 12:59 发表 http://www.chinavib.com/forum/images/common/back.gif
我尝试用了所有的算子,并且改变参数也没有用,就是的不出中间的两条垂直线,应该怎么办啊?
根据你的图像特点,自己写一个吧,边缘提取这种问题不会太难的
页: [1]
查看完整版本: 边缘提取不完整如何解决