学习目标:学习关于图像的基本操作
代码及运行结果
%% 通过抖动来增强图像的色彩对比度
clear all;
close all;
I=imread('cameraman.tif'); %读取灰度图像
BW=dither(I); %通过抖动转换为二值图像来增强图像的色彩对比度
subplot(121);
imshow(I);
subplot(122);
imshow(BW)
%% 获取图像的信息
clear all;
close all;
info=imfinfo('trees.tif','tif')
%% 改变图像格式
clear all;
close all;
RGB=imread('trees.tif','tif');
imwrite(RGB,'mytrees.png','png');
tupian=imread('mytrees.png');
figure;
imshow(tupian);
%% 读取图像中的某些帧
clear all;
close all;
I1=imread('mri.tif',5); %第5帧
I20=imread('mri.tif',25);
figure;
subplot(121);
imshow(I1);
subplot(122);
imshow(I20)
set(gcf,'position',[200,200,500,300]);
%% which mri.tif 查看图像位置
%% 同时显示多帧图像
clear all;
close all;
mri=uint8(zeros(128,128,1,25));
for i=1:25 % 25帧
[mri(:,:,:,i),map]=imread('mri.tif',i);
end
montage(mri,map); % 同时显示多帧图像
%% 将多帧图像转换为电影 非常有趣
clear all;
close all;
mri=uint8(zeros(128,128,1,25));
for i=1:25
[mri(:,:,:,i),map]=imread('mri.tif',i);
end
mov=immovie(mri,map);
implay(mov);
%% 图像相加 如果大于255就设置为255
clear all;
close all;
I=imread('rice.png');
J=imread('cameraman.tif');
K=imadd(I,J,'uint16');
imshow(K,[]);
set(gcf,'position',[400,400,600,600]);
%% 图像相减 小于0则设置为0 0到255 减去一个常数颜色更深
clear all;
close all;
I=imread('cameraman.tif');
J=imsubtract(I,90);
imshow(J);
set(gcf,'position',[400,400,600,600]);
%% 图像相乘
clear all;
close all;
I=imread('cameraman.tif','tif');
J=immultiply(I,0.6);
subplot(121);
imshow(I);
subplot(122);
imshow(J);
set(gcf,'position',[400,400,600,300]);
%% 图像的除 维数要一样
clear all;
close all;
X=uint8([ 222 50 21; 56 77 89]);
Y=uint8([ 66 66 66; 66 66 66 ]);
Z=imdivide(X,Y)
%% 两幅图像的绝对差异
clear all;
close all;
I=imread('cameraman.tif');
J=uint8(filter2(fspecial('gaussian'), I)); %对图像进行滤波
K=imabsdiff(I,J); %获取滤波图像和之前图像的差异
subplot(121);
imshow(I);
subplot(122);
imshow(K,[]); % 加[]是为了显示清晰
set(gcf,'position',[400,400,600,400]);