如何使用matlab提取图像伦廓的坐标
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何使用matlab提取图像伦廓的坐标相关的知识,希望对你有一定的参考价值。
参考技术A 对图片边缘点的提取 F=imread('butterfly.jpg'); F1=~im2bw(F);F2=bwfill(F1,'holes'); SE=ones(3)
F3=imdilate(F2,SE); F4=bwperim(F2); figure,imshow(F4);
imwrite(F4,' butterfly2.jpg '); 对边缘点的坐标化 a=imread('picture.bmp'); b=rgb2gray(a);
c=edge(b);
imshow(double(c)); c
[x,y]=find(c)
plot(y,x,'k.')
在matlab中,怎么把图片中的图像轮廓坐标找出来?
要二值图像才行格式:B = bwboundaries(BW,conn)(基本格式)
作用:获取二值图中对象的轮廓。B是一个P×1的cell数组,P为对象个数,每个cell是Q×2的矩阵,对应于对象轮廓像素的坐标。Q内每一行表示连通体的边界像素的位置坐标(第一列是纵坐标Y,第二列是横坐标X),Q为边界像素的个数。追问
我现在能够找到轮廓,可是不会把这个轮廓的坐标输出来,还请指教。我不会编程,还请说细一点,谢谢。
参考技术A B = bwboundaries(BW,conn);A=ind2sub(B*(B==255));
程序解析:
1、第一条指令,首先将图像变成一维的;
2、其次:依次取出每个像素判断是不是255(白色)找出是255的 那一段来;
3、然后确定255那段的 中心。用ind2sub()函数肯定能精确定位的。 参考技术B simple(S),采用多种方法化简多项式,包括simplify,expand、factor、combine、radsimp、convert、collect
采用radsimp结果就是x
估计程序问题
>> syms x
>> s=x^(2)^(1/2);
>> simple(s)
simplify:
csgn(x)*x
radsimp:
x
combine(trig):
(x^2)^(1/2)
factor:
(x^2)^(1/2)
expand:
(x^2)^(1/2)
combine:
(x^2)^(1/2)
convert(exp):
(x^2)^(1/2)
convert(sincos):
(x^2)^(1/2)
convert(tan):
(x^2)^(1/2)
collect(x):
(x^2)^(1/2)
mwcos2sin:
(x^2)^(1/2)
ans =
x
以上是关于如何使用matlab提取图像伦廓的坐标的主要内容,如果未能解决你的问题,请参考以下文章
关于用matlab处理图像的问题,如何将下进行边缘提取,得到比较清晰的轮廓,最好是能寻找到偏心孔的坐标