1、图像相加运算
1.1增强图像的亮度
I = imread('rice.png');
J = imadd(I,50);
subplot(1,2,1), imshow(I),title('原图像');
subplot(1,2,2), imshow(J), title('增强图像的亮度');
效果图如下:
1.2图像叠加
I = imread('rice.png');
J = imread('cameraman.tif');
K = imadd(I,J,'uint16');
subplot(131),imshow(I),title('图像一');
subplot(132),imshow(J),title('图像二');
subplot(133),imshow(K,[]),title('叠加后的图像');
效果图如下:
1.3通过求平均值降噪
clear;
I = imread('rice.png');
subplot(221),imshow(I),title('图像一');
[m,n]=size(I);
J(m,n)=0;
J=double(J);
X=imnoise(I,'gaussian');Y=double(X); %加入噪声
subplot(222),imshow(X),title('加噪图像一');
J=J+Y/10;
X=imnoise(I,'gaussian');Y=double(X); %加入噪声
subplot(223),imshow(X),title('加噪图像二');
J=J+Y/10;
for i=1:8 %循环运算,对噪声的图像取平均值
X=imnoise(I,'gaussian')
Y=double(X);
J=J+Y/10;
end
subplot(224),imshow(mat2gray(J)),title('10幅噪声图像平均结果');
效果图如下:
2.图像相减运算
2.1比较余弦压缩变换图像和原图像的区别
I=imread('cameraman.tif');
I=im2double(I);
T=dctmtx(8); %产生二维DCT矩阵
%计算二维DCT,T和T转置是DCT函数P1*x*P2的参数
B=blkproc(I,[8 8],'P1*x*P2',T,T');
%二值掩模,用来压缩DCT系数
mask=[1 1 1 1 0 0 0 0
1 1 1 0 0 0 0 0
1 1 0 0 0 0 0 0
1 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0];
B2=blkproc(B,[8 8],'P1.*x',mask); %只保留DCT变换的10个系数
I2=blkproc(B2,[8 8],'P1*x*P2',T',T); %重构图像
subplot(131),imshow(I),title('原始图像');
subplot(132),imshow(I2),title('压缩图像');
N=I2-I; %两个图像相减
subplot(133),imshow(N),title('差别图像');
效果图如下:
2.2去掉图像rice.png中的背景亮度图像
clear,close all
I=imread('rice.png');
subplot(121),imshow(I),title('原始图像');
background=imopen(I,strel('disk',15)); %得到背景图像
I2=imsubtract(I,background); %通过代数减法去掉图像中的背景图像
subplot(122),imshow(I2),title('去除背景的图像');
效果图如下: