matlab的一个轮廓提取问题
matlab的一个轮廓提取问题,原程序使用的是320×418jpg图片,我换成324×244png图片就无法使用了,求高手!后来我用原程序中最简单的sobel算子测试我的...
matlab的一个轮廓提取问题,原程序使用的是320×418jpg图片,我换成324×244png图片就无法使用了,求高手!后来我用原程序中最简单的sobel算子测试我的png图片,程序如下
I=imread('30.png')
figure,imshow(I);
BW=edge(I,'sobel',(graythresh(I)*.1));
figure,imshow(BW)
无法提取边缘。
然后我换另一个也是用sobel算子的程序测试同一个png图片:
ps=imread('30.png'); %读取图像
subplot(1,3,1)
imshow(ps);
title('原图像');
ps=rgb2gray(ps);
pa = edge(ps,'sobel');
subplot(1,3,2);
imshow(pa);
title('Sobel边缘检测得到的图像');
提取完美,百思不得其解,求大神指点着俩程序的区别! 展开
I=imread('30.png')
figure,imshow(I);
BW=edge(I,'sobel',(graythresh(I)*.1));
figure,imshow(BW)
无法提取边缘。
然后我换另一个也是用sobel算子的程序测试同一个png图片:
ps=imread('30.png'); %读取图像
subplot(1,3,1)
imshow(ps);
title('原图像');
ps=rgb2gray(ps);
pa = edge(ps,'sobel');
subplot(1,3,2);
imshow(pa);
title('Sobel边缘检测得到的图像');
提取完美,百思不得其解,求大神指点着俩程序的区别! 展开
2个回答
展开全部
问题应该是第一幅中的图片是彩色图片,使用edge函数时要求输入的是灰度图像才行。在第二幅图中你使用了函数rgb2gray将彩色图像转化为了灰度图像,再调用了edge函数,所以结果出来了。你试着在第一幅图像的程序中,在调用edge函数之前先使用rgb2gray函数将图像转化为灰度图像。
追问
无论是jpg还是png我的都是BWimage,没有灰度的
追答
既然都是BW的,那第二个程序中使用 ps=rgb2gray(ps) 就没有意义了,我也不懂了。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询