✅ 操作成功!

连通区域

发布时间:2023-06-13 作者:admin 来源:文学

连通区域

连通区域

关于改变的作文-科宝橱柜

2023年3月19日发(作者:送严士元)

Matlab图像处理(⼀):⼆值化、开操作、连通区域提取、重

⼼,ROI(regionofi。。。

本博客主要记录我利⽤Matlab学习图像处理的⼀些学习笔记,欢迎交流,批评指正。

本篇是第⼀篇,主要讲解图像处理的⼀些基础知识,列出如下:

1.⼆值化

2.开操作

3.连通区域提取

4.连通区域重⼼提取

gbox提取

各操作背后的理论基础,这⾥先做简要说明:

1.⼆值化:通过选取适当的阈值,将图像上的像素点的灰度值设置为0或255【⿊(0)和⽩(255)】,使整个图像呈现出⿊⽩的效果。

图像处理,第⼀步⼀般就是进⾏⼆值化,⽽⼆值化常⽤的⽅法有两种(1)ostu⽅法,(2)Kittle算法。

⼀般先将图像灰度化,再将灰度图像⼆值化,然后进⾏其他处理。matlab可以直接⽤graythresh⽅法找到合适的阈值。之后⽤im2bw将

灰度图像转化为⼆值化图像。

2.开操作:开操作⼀般应⽤在⼆值图像分析处理的基础上,使对象的轮廓变得光滑,断开狭窄的间断和消除细的突出物。

主要⽤来保留某种结构操作,remove其他不符合结构区域的前景区域像素。此操作依赖于结构元素的选取。

3.连通区域提取:在我们讨论连通区⾸先要明确域算法之前,⾸先要知道什么是连通区域。在图像中,最⼩的单位是像素,每个像素周围有

8个邻接像素。

常见的邻接关系有两种:4邻接和8邻接,4邻接的⼀共有4个点,即上下左右,如下左图所⽰,8邻接的⼀共有8个点,包括了对⾓线,如下

右图所⽰。

如果像素A与B邻接,那么我们称A与B连通,那么有如下结论:

如果A与B连通,B与C连通,那么A与C连通。

从视觉上来看,彼此连通的点形成了⼀个区域,⽽不连通的点形成了不同的区域,这样⼀个所有彼此连通的点构成的集合,我们称为⼀个连

通区域。

4.连通区域重⼼提取:只需要⽤matlab的regionprops⽅法就可很⽅便的获取各种属性。

gbox提取:同样⽤regionprops⽅法获取。

源代码如下:

%function:

%获取图像感兴趣的位置,并进⾏标记

%date:2016-9-21

%author:Zyy

%清空变量,读取图像,并显⽰其属性

clear;closeall

src=imread('');

whos

%显⽰原始图像

figure('name','myapp'),

subplot(2,2,1),imshow(src),title('src')

%⽤ostu⽅法获取⼆值化阈值,进⾏⼆值化并进⾏显⽰

level=graythresh(src);

bw=im2bw(src,level);

subplot(2,2,2),imshow(bw),title('bw')

%运⽤开操作消去噪点

se=strel('disk',2);%结构元素se

openbw=imopen(bw,se);

subplot(2,2,3),imshow(openbw),title('open')

%获取连通区域,并进⾏显⽰

L=bwlabel(openbw,4);

RGB=label2rgb(L);

subplot(2,2,4),imshow(RGB),title('rgb')

%获取区域的'basic'属性,'Area','Centroid',and'BoundingBox'

stats=regionprops(openbw,'basic');

centroids=cat(1,id);

figure('name','regionprops'),

%绘制开操作之后的⼆值化图像

imshow(openbw),title('centroids')

holdon

%绘制重⼼

plot(centroids(:,1),centroids(:,2),'b*'),

%绘制感兴趣区域ROI

fori=1:size(stats)

rectangle('Position',[stats(i).BoundingBox],'LineWidth',2,'LineStyle','--','EdgeColor','r'),

end

holdoff

👁️ 阅读量:0