I=imread('cameraman.tif');
J=uint8(filter2(fspecial('gaussian'),I));
K=imabsdiff(I,J);
imshow(I);
imshow(K,[]);
I=imread('rice.png');
J=imread('cameraman.tif');
K=imadd(I,J,'uint16');
imshow(I);
imshow(J);
imshow(K,[]);
原图和处理后的图像如下:
实际上imadd还可以通过制定常数参数增强一张图像的亮度,如下:
I=imread('rice.png');
J=imadd(I,50);
subplot(121),imshow(I);
subplot(122),imshow(J);
对比图如下:
bw = imread('text.png');
bw2 = imcomplement(bw);
subplot(121),imshow(bw);
subplot(122),imshow(bw2);
执行结果如下:
I=imread('rice.png');
blocks=blkproc(I,[32 32],'min(x(:))');
background=imresize(blocks,[256 256],'bilinear');
Ip=imdivide(I,background);
subplot(121),imshow(I);
subplot(122),imshow(Ip,[]);
执行结果如下:
如果将参数变成常数:
I=imread('rice.png');
J=imdivide(I,2);
subplot(121),imshow(I);
subplot(122),imshow(J);
执行结果如下:
I=imread('cameraman.tif');
J=uint8(filter2(fspecial('gaussian'),I));
K=imlincomb(1,I,-1,J,128);
subplot(121),imshow(I);
subplot(122),imshow(K);
执行结果如下:
I=imread('moon.tif');
J=immultiply(I,0.5);
subplot(121),imshow(I);
subplot(122),imshow(J);
执行结果如下:
I=imread('rice.png');
blocks=blkproc(I,[32 32],'min(x(:))');
background=imresize(blocks,[256 256],'bilinear');
Ip=imsubtract(I,background);
subplot(121),imshow(I);
subplot(122),imshow(Ip,[]);
执行结果如下: