Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1611799
  • 博文数量: 245
  • 博客积分: 10378
  • 博客等级: 上将
  • 技术积分: 2571
  • 用 户 组: 普通用户
  • 注册时间: 2009-03-27 08:19
文章分类

全部博文(245)

文章存档

2013年(4)

2012年(8)

2011年(13)

2010年(68)

2009年(152)

分类:

2010-07-15 14:46:27

% 首先读取图片 图片的命名方式按照功能
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():       边缘提取运算

阅读(20452) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~