关于用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号)给你一幅图帮我试试吧,如果能检测出圆心来最好,检测不出来的话可以只是把轮廓提取出来,谢谢啦

温馨提示:内容为网友见解,仅供参考
第1个回答  2011-09-12
gImg=rgb2gray(Img);%Img是彩色图像,gImg是灰度图像
eImg=edge(gImg,'sobel');%sobel边缘检测,eImg是二值图像
剩下的可以用数学形态学运算,计算每个连通域的面积和周长,
圆的周长面积满足一定比例,满足此比例的就是偏心孔位置
第2个回答  2011-09-12
可以先二值化;然后用bwlabel做统计处理

如何用matlab画图像外边框的轮廓?
1. 图像预处理:首先,对原始图像进行预处理,例如灰度化、二值化、平滑滤波等。这将有助于减少噪声并提取边缘。2. 边缘检测:使用边缘检测算法,例如Canny边缘检测、Sobel算子等,来找到图像中的边缘。这些算法会在图像中识别出像素值变化较大的位置,标记为边缘点。3. 轮廓提取:从边缘点中提取轮廓。

MATLAB图像处理:把照片变成素描风格 V2 (1) 线描
最后一步是将处理得到的图像转为黑白效果,通过反色操作实现。这一过程涉及到像素值的替换,以实现从黑色边缘到白色背景的转换。所有步骤结束后,将像素值映射到[0, 1]区间,生成最终的线描图像。实验结果展示了该算法相比其他边缘检测方法在实现自然手绘效果时的优势,如笔触间的自然叠加、交错和断裂。本...

如何使用matlab提取图像伦廓的坐标
先把图像二值化,再提取图像轮廓 用for循环语句扫描图像的数组 找到初始点,用八码跟踪法继续寻找,每找到一个边缘点,就放到新建的与图像同大小的数组I中,直到找到初始点结束寻找 在寻找边缘时设置num计算边缘点的长度 设定一个num的大小,若比这个长度短就将I中的坐标删除再从新扫描直到找到你要的...

matlab求取图像的灰度图、图像轮廓以及二值化图像
在MATLAB中进行图像处理时,图像的灰度化、轮廓检测以及二值化是常见的步骤。首先,对于灰度图像的获取,你可以借助rgb2gray函数。这个函数采用标准的灰度转换公式,将彩色图像转换成单一的灰度值表示,便于后续处理。接着,轮廓检测是通过edge函数实现的。它支持多种边缘检测算法,如Sobel、Canny和Prewitt,这些...

matlab二值图像截取
ii. 在边缘点集合中剔除某些边界点或填补边界间断点,并将这些边缘连接成完整的线 常用的检测算子有微分算子、拉普拉斯高斯算子和canny算子。 在Matlab图像处理工具箱中,提供了edge函数利用以上算子来检测灰度图像的边缘。 2.1微分算子法 经典的边缘提取方法是考察图像的每个像素的某个邻域内灰度的变化,利用边缘邻近一阶...

matlab图像处理,对一幅图像做傅里叶变换,去掉细节部分留下轮廓部分...
图像的细节对应的是高频部分,轮廓对应的是图像的低频部分,所以要留下轮廓的话应该去掉高频,结果是图像被模糊了。主要就是使用一个频域滤波器滤除高频部分,对应的是图像处理知识中的频域滤波部分,建议搜一些相关资料,冈萨雷斯的《数字图像处理——matlab版》中就有相关知识的详细介绍,包括频域滤波原理...

如何用matlab实现对边缘检测后的图像的边缘细化和曲线拟合?
可以使用bwboundaries提取边缘节点曲线,然后用样条函数进行曲线拟合插值。

如何利用matlab对图像进行处理,效果如图所示
5、灰度窗口变换不理解;6、灰度拉伸是对比度增强不会;7、直方图就是:imhist(gray);8、直方图均衡:gray2=histeq(gray);图像几何运算不太懂,就知道个imrotate旋转,你看看别的书。以上我讲的这些都是非常基础的,你要想做什么实际项目是不够的,建议你多看点书,或者在实际应用中发现问题并解决。

matlab中提取灰度图的轮廓?
先用ACDsee将需处理的图片转换为.jpg格式,MATLAB支持对.jpg的直接操作。如果图片是彩图,注意把彩图转换为灰度图,用函数rgb2gray()。可用函数edge()提取轮廓。下面给出一个例子:a1=imread('d:\\picture.jpg');a2=rgb2gray(a1);a3=edge(a2);imshow(a3)...

matlab的一个轮廓提取问题
问题应该是第一幅中的图片是彩色图片,使用edge函数时要求输入的是灰度图像才行。在第二幅图中你使用了函数rgb2gray将彩色图像转化为了灰度图像,再调用了edge函数,所以结果出来了。你试着在第一幅图像的程序中,在调用edge函数之前先使用rgb2gray函数将图像转化为灰度图像。

相似回答