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边缘检测得到的图像');
提取完美,百思不得其解,求大神指点着俩程序的区别!
展开
 我来答
xiaolong306
2013-06-04 · TA获得超过621个赞
知道小有建树答主
回答量:81
采纳率:100%
帮助的人:123万
展开全部
问题应该是第一幅中的图片是彩色图片,使用edge函数时要求输入的是灰度图像才行。在第二幅图中你使用了函数rgb2gray将彩色图像转化为了灰度图像,再调用了edge函数,所以结果出来了。你试着在第一幅图像的程序中,在调用edge函数之前先使用rgb2gray函数将图像转化为灰度图像。
追问
无论是jpg还是png我的都是BWimage,没有灰度的
追答
既然都是BW的,那第二个程序中使用 ps=rgb2gray(ps) 就没有意义了,我也不懂了。
电动炉钩子
2013-06-05 · TA获得超过1568个赞
知道小有建树答主
回答量:614
采纳率:0%
帮助的人:799万
展开全部
(graythresh(I)*.1)看看这个值是多少。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式