关于用matlab处理图像的问题,如何将下进行边缘提取,得到比较清晰的轮廓,最好是能寻找到偏心孔的坐标

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于用matlab处理图像的问题,如何将下进行边缘提取,得到比较清晰的轮廓,最好是能寻找到偏心孔的坐标相关的知识,希望对你有一定的参考价值。

可以联系我哈 474323571


用MATLAB处理图片除了提到的“灰度(转换)”去除噪声,如果就直接二值化得话,对于一副对比度不大的图片,是不容易清楚地区分的。可以试试灰度拉伸,灰度值均衡化,自适应阈值分割等图像增强的方法。
尺寸测量也就是特征提取,面积可以用扫描法计算区域的像素值,如
sum=0;
for i=30:480
for j=5:505
if j2(i,j)>=0.5 (j2为处理图像)
sum=sum+1;
end如果是计算轮廓长度,用边缘提取的计算再用扫描法计算像素值点。

MATLAB图像处理的算法用到得程序都不难,只要你的图像处理流程试出来的效果好,计算相对都比较简单。追问

我的目的是要寻找片心口的圆心坐标,就是那种灌装桶,如果对于那种有噪声的图片,提取边缘的时候就把噪声的边缘也一块提取出来了,图像就比较乱了,也区分不出那是重点部分,(474323571我的QQ号)给你一幅图帮我试试吧,如果能检测出圆心来最好,检测不出来的话可以只是把轮廓提取出来,谢谢啦

参考技术A gImg=rgb2gray(Img);%Img是彩色图像,gImg是灰度图像
eImg=edge(gImg,'sobel');%sobel边缘检测,eImg是二值图像
剩下的可以用数学形态学运算,计算每个连通域的面积和周长,
圆的周长面积满足一定比例,满足此比例的就是偏心孔位置
参考技术B 可以先二值化;然后用bwlabel做统计处理

matlab中如何把边缘检测出来的图像进行直线拟合

是不是还要先把检测出的图像的点提取出来?如何提取?用CANNY可以吗?

用sobel,canny算子都可以提取出边缘;
提取出边缘再进行im2bw二值化,得到二值化后的0,1图像;
1的图像本质上是由离散的点构成,将离散的点的x,y坐标找出,
可以用find命令,例如[x,y]=find(I==1);
最后用cftool曲线拟合工具箱,拟合出所有的x,y的坐标点;
大致这么个思路,往这方面使劲,基本上就可以搞定.
参考技术A 检测出边缘后,使用bwmorph函数细化得到边缘骨架,然后用Hough变换检测直线,程序比较长,可以参看数字图像处理(MATLAB版)张德丰编著
或者数字图像处理(MATLAB版)冈萨雷斯编著 阮秋奇 译 等书。本回答被提问者采纳
参考技术B 检测出边缘后,使用bwmorph函数细化得到边缘骨架,然后用Hough变换检测直线,程序比较长,可以参看数字图像处理(MATLAB版)张德丰编著
或者数字图像处理(MATLAB版)冈萨雷斯编著 阮秋奇 译 等书。
参考技术C 可以使用bwboundaries提取边缘节点曲线,然后用样条函数进行曲线拟合插值。 参考技术D 检测出边缘后,使用bwmorph函数细化得到边缘骨架,然后用Hough变换检测直线,程序比较长,可以参看数字图像处理(MATLAB版)张德丰编著
或者数字图像处理(MATLAB版)冈萨雷斯编著 阮秋奇 译 等书。

以上是关于关于用matlab处理图像的问题,如何将下进行边缘提取,得到比较清晰的轮廓,最好是能寻找到偏心孔的坐标的主要内容,如果未能解决你的问题,请参考以下文章

用matlab如何通过图像分割来检测边界

边缘检测基于CNN的灰度图像边缘提取matlab源码

matlab中如何把边缘检测出来的图像进行直线拟合

二值化处理与边缘检测

为啥用二值化处理图像之后,还会有其他的灰度值,尤其是在一些边缘的位置。比如opencv里的cvThreshold

用matlab实现图像识别的功能,提供一下思路