matlab连通域属于形态学处理,图像分割+连通域统计与标注——MATLAB

图像分割+连通域统计与标注

例一

如图,对下列光斑图像进行分割,将光斑目标分割出来,并计算光斑数量。

b8dd09b383456136c13018987711f359.png

图像分割

先将图像二值化,然后做形态学处理获得目标所在区域,然后分割图像。

MATLAB代码:

%框选统计光斑

clear;

%读取原图像

img=imread('01.png');

grayimg = rgb2gray(img);

BWimg = grayimg;

[width,height]=size(grayimg);

%二值化

T1=40;

for i=1:width

for j=1:height

if(grayimg(i,j)

输出:

cb95cf15a5982aa2886949474173f177.png

连通域统计标注

先将图像二值化,然后做形态学处理,最后使用外接矩形框选连通域,并使用形心确定连通域位置。

MATLAB代码:

  • 3
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
形态学检测在Matlab中可以使用morphological operations函数实现。以下是一个基于形态学检测的异常图片检测示例代码: ```matlab % 读入图像序列 imageDir = 'image_folder'; % 图像文件夹路径 imageFiles = dir(fullfile(imageDir, '*.jpg')); % 获取所有jpg格式的图像文件 numImages = length(imageFiles); % 定义结构元素 se = strel('disk', 10); % 定义半径为10的圆形结构元素 % 循环处理每张图像 for i = 1:numImages % 读入图像 imageFile = fullfile(imageDir, imageFiles(i).name); img = imread(imageFile); % 应用形态学开运算 imgOpen = imopen(img, se); % 计算图像差异 diff = imabsdiff(img, imgOpen); diffGray = rgb2gray(diff); % 判断是否为异常图像 if mean(diffGray(:)) > 10 % 如果图像差异的平均值超过10,认为是异常图像 disp(['Image ', num2str(i), ' is an anomaly.']); % 在原图上标注异常区域 imgDiff = imoverlay(img, diffGray, [1 0 0]); % 显示原图和标注后的图像 figure, imshowpair(img, imgDiff, 'montage'); else disp(['Image ', num2str(i), ' is normal.']); end end ``` 该代码会读入一个图像文件夹中的所有jpg格式图像,并对每一张图像进行形态学开运算。开运算可以平滑图像并去除小的噪声点。然后,计算原图像与开运算后的图像的差异,并将差异图像转换为灰度图像。如果差异图像的平均值超过一个阈值(这里设为10),则认为原图像是异常图像,否则是正常图像。对于异常图像,代码会在原图像上标注异常区域并显示原图和标注后的图像。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值