【Matlab数字图像处理】(一)时域处理

%% 关于subplot 和imadjust 的练习
clc
clear
f=imread('image\breast.tif');
subplot(2,3,1);  %将几张图片分区域显示到一张图里面
imshow(f);
g2 = imadjust(f,[0 1],[1 0]);%imadjust(I,[LOW_IN; HIGH_IN],[LOW_OUT; HIGH_OUT]);
                             %这个函数是将LOW_IN映射到LOW_OUT,将HIGH_IN映射到HIGH_OUT,
                             %这些参数都是强度值,所以其大小在0到1之间。其它的截断。
                             %如果imadjust(f,[0,1],[1,0])则相当于imcomplement(f),相当于灰度图像反转。
                             %如果第4个参数gammar存在的话,则可以控制器映射曲线是凹凸型的,具体的见help命令。
subplot(2,3,2);
imshow(g2);
g3 = imcomplement(f);
subplot(2,3,3);
imshow(g3);
g4 = imadjust(f,[0.5 0.75],[0,1]);
subplot(2,3,4);
imshow(g4);
g5 = imadjust(f,[],[],2);
subplot(2,3,5);
imshow(g5);

%% 直方图imhist
clc
clear
close all
f=imread('image\breast.tif');
subplot(121),imshow(f);
subplot(122),imhist(f),
axis tight   %axis([xmin xmax ymin ymax]) 分别表示x轴和y轴的坐标的刻度
             %axis tight是使坐标系的最大值和最小值和你的数据范围一致                           
title('hist');

%% 直方图均衡化
clc
clear
close all
f=imread('image\moon.tif');
subplot(121)  ,imshow(f) ,subplot(122) ,imhist(f)
ylim('auto');
g1 = histeq(f);
%histeqs函数完成直方图均衡功能,其第二个参数表示均衡是bin的个数。可以使用函数xlim和ylim函数自动或者手动设置坐标轴的取值范围和刻度线。
figure,subplot(121),imshow(g1),subplot(122),imhist(g1)
ylim('auto');
g2 = histeq(f,8);
figure,subplot(121),imshow(g2),subplot(122),imhist(g2)
ylim('auto');


%% imfilter线性空间滤波
clc
clear
close all
f=imread('image\Fig0316(3)(third_from_top).tif');
f = im2double(f);
imshow(f);
w=ones(31);
gd = imfilter(f,w);
figure,imshow(gd,[]);
gr = imfilter(f,w,'replicate'); %复制外边界的值来扩展
figure,imshow(gr,[])
gc = imfilter(f, w, 'circular'); %用周期进行扩展
f8 = im2uint8(f);
gr8 = imfilter(f8, w, 'replicate');
figure,imshow(gr8,[]);

%% 线性空间滤波
clc
clear
close all
f=imread('image\moon.tif');
imshow(f);
w = fspecial('laplacian',0);
g1 = imfilter(f,w,'replicate');
figure,imshow(g1,[]);
f2 = im2double(f);
g2 = imfilter(f2,w,'replicate');
figure,imshow(g2,[]);
g = f2 - g2;
figure,imshow(g,[]);


%% 中值滤波
clc
clear
close all
f=imread('image\moon.tif');
subplot(121),imshow(f);
fn = imnoise(f,'salt & pepper',0.2);
subplot(122),imshow(fn);
gm = medfilt2(fn);
figure,subplot(121),imshow(gm);
gms = medfilt2(fn,'symmetric');
subplot(122),imshow(gms)

%% 非线性空间滤波器ordfilt2
clc
clear
close all
f=imread('image\moon.tif');
subplot(131),imshow(f);
fn = imnoise(f,'salt & pepper',0.2);
subplot(132),imshow(fn);
[m ,n] = size(f);
g = ordfilt2(f,median(1:3*3),ones(3,3));
subplot(133),imshow(g);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值