matlab中的图像二值化、形态学操作、边缘查找

这篇博客介绍了MATLAB中进行图像处理的一些基本操作,包括使用imread()读取图像,graythresh()获取灰度阈值进行im2bw()二值化处理,以及应用imerode()、imdilate()、imopen()和imclose()进行形态学操作。此外,还提及了使用filter2()和fspecial()进行滤波,以及利用edge()函数进行边缘检测。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

% 首先读取图片 图片的命名方式按照功能
clear;
clc;
SourceImage=imread('c:\img.jpg');
AverageImage= zeros( size(SourceImage),'uint8');
BwImage= zeros( size(SourceImage),'uint8');
EageImage= zeros( size(SourceImage),'uint8');
ErodeImage= zeros( size(SourceImage),'uint8');
DilateImage= zeros( size(SourceImage),'uint8');
OpenImage= zeros( size(SourceImage),'uint8');
CloseImage= zeros( size(SourceImage),'uint8');



%图像平滑化【均值滤波 中值滤波等】
AverageImage=filter2( fspecial('average',3),SourceImage);

%AverageImage=medfilt2( SourceImage );

%灰度阈值获取
uint8 averagelevel;
average_level=( ( min(SourceImage(:))+max( SourceImage(:)) )/2 );
graythresh_level = graythresh(SourceImage);

%灰度图像2值化处理
uint8 level_chose;
double level;

level_chose=1;

switch level_chose
    case 0
        level=average_level/255;
    case 1
        level=graythresh_level;
    otherwise
        
end

%BwImage=im2bw(SourceImage,level); %二值化处理
BwImage=im2bw( uint8(AverageImage) ,level); %二值化处理

%图片形态学处理
se=strel('square',5);

DilateImage=imdilate( BwImage,se);
ErodeImage=imerode( BwImage,se);

CloseImage=imclose( BwImage,se);
OpenImage=imopen( BwImage,se);


%边缘提取
EageImage=edge(BwImage,'canny');

%显示处理结果

subplot(241);
imshow(SourceImage);
title('Source Image');

subplot(242);
imshow( uint8(AverageImage) );
title('图像平滑后');

subplot(243);
imshow(BwImage);
title('Bw Image');

subplot(244);
imshow(EageImage);
title('边缘提取');

subplot(245);
imshow(ErodeImage);
title('ErodeImage');

subplot(246);
imshow(DilateImage);
title('DilateImage');

subplot(247);
imshow(OpenImage);
title('OpenImage');

subplot(248);
imshow(CloseImage);
title('CloseImage');



以上只是练习而已。熟悉一些常用的函数。

例如:

imread(): 读取图片

zeros():  创建矩阵结构

size():   返回结构大小

graythresh(): 灰度阈值获取

im2bw():     灰度图像二值化

imerode():   腐蚀操作

imdilate():  膨胀操作

imopen():    开操作

imclose():   闭操作

filter2():   滤波器运算

fspecial():   构造特殊结构因子

min():        返回结构中的最小值

max():        返回结构中的最大值

edge():       边缘提取运算

阅读(1768) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~
评论热议
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值