大家好,又见面了,我是全栈君。
本文系《数字图像处理原理与实践(MATLAB版)》一书之代码系列的Part2(P43~80),代码运行结果请參见原书配图,建议下载代码前阅读下文:
关于《数字图像处理原理与实践(MATLAB版)》一书代码公布的说明
http://blog.csdn.net/baimafujinji/article/details/40987807
P44
i = imread(‘theatre.jpg’); i = rgb2gray(i); i = double(i);
out1 = log(1+i)/0.065; out2 = log(1+i)/0.035; out1(find(out1>255)) = 255; out2(find(out2>255)) = 255; out1 = uint8(out1); out2 = uint8(out2);
subplot(221), imshow(out1), title(‘image, p = 0.065’); subplot(222), imhist(out1), title(‘histgram, p = 0.065’); subplot(223), imshow(out2), title(‘image, p = 0.035’); subplot(224), imhist(out2), title(‘histgram, p = 0.035’);
P47
i = rgb2gray(imread(‘theatre.jpg’)); i = double(i); y1 = 255*(i/255).^2.5; y2 = 255*(i/255).^0.4; y1 = uint8(y1); y2 = uint8(y2); subplot(221), imshow(y1), title(‘p =2.5’); subplot(222), imhist(y1), title(‘p =2.5’); subplot(223), imshow(y2), title(‘p =0.4’); subplot(224), imhist(y2), title(‘p =0.4’);
P48
i = rgb2gray(imread(‘theatre.jpg’)); y1 = double(i); y1 = 255*(y1/255).^2.5; y2 = uint8(y1); y3 = imadjust(y2, [ ], [ ], 0.4); subplot(131), imshow(i), title(‘original image’); subplot(132), imshow(y2),title(‘power = 2.5’); subplot(133), imshow(y3),title(‘gamma = 0.4’);
P49
i = imread(‘theatre.jpg’); i = rgb2gray(i); i = double(i);
y1 = 1.5.^(i*0.070)-1; y2 = 1.5.^(i*0.050)-1; y1(find(y1>255)) = 255; y2(find(y2>255)) = 255; y1 = uint8(y1); y2 = uint8(y2);
subplot(221), imshow(y1), title(‘c=0.070’); subplot(222), imhist(y1), title(‘c=0.070’); subplot(223), imshow(y2), title(‘c=0.050’); subplot(224), imhist(y2), title(‘c=0.050’);
P52
i = imread(‘theatre.jpg’); i = rgb2gray(i); L = imadjust(i,[ ],[50/255;150/255]); J = imadjust(L,[50/255;150/255 ],[20/255;230/255]); subplot(221), imshow(L), title(‘low contrast’); subplot(222), imhist(L), title(‘low contrast’); subplot(223), imshow(J), title(‘gray stretch’); subplot(224), imhist(J), title(‘gray stretch’);
P54
i = rgb2gray(imread(‘theatre.jpg’)); LC = imadjust(i,[ ],[50/255;150/255]); figure(1), subplot(221), imshow(LC); title(‘low contrast’); figure(1),subplot(222), imhist(LC); title(‘low contrast’); HE1 = histeq(LC); figure(1), subplot(223), imshow(HE1); title(‘histogram equalization’); figure(1),subplot(224), imhist(HE1); title(‘histogram equalization’);
P56
img = rgb2gray(imread(‘theatre.jpg’)); img_ref = rgb2gray(imread(‘rpic.jpg’)); [hgram, x] = imhist(img_ref); J = histeq(img, hgram); subplot(2,3,1), imshow(img), title(‘original image’); subplot(2,3,4), imhist(img), title(‘original image’); subplot(2,3,2), imshow(img_ref), title(‘reference image’); subplot(2,3,5), imhist(img_ref), title(‘reference image’); subplot(2,3,3), imshow(J), title(‘output image’); subplot(2,3,6), imhist(J), title(‘output image’);
P64-1
I = imread(‘apostles.jpg’); I = double(I); B = zeros(size(I)); H = size(I); move_x = 100; move_y = 150; B(move_y + 1:H(1), move_x+1:H(2), 1:H(3))=… I(1:H(1)-move_y, 1:H(2) – move_x, 1:H(3)); subplot(1,2,1),subimage(uint8(I)) title(‘原图像’) subplot(1,2,2),subimage(uint8(B)) title(‘平移变换’);
P64-2
I = imread(‘apostles.jpg’); se=translate(strel(1),[150 100]); B = imdilate(I,se); figure; subplot(1,2,1),subimage(I); title(‘原图像’); subplot(1,2,2),subimage(B); title(‘平移变换’);
P66
I = imread(‘apostles.jpg’); [height, width, dim]=size(I); %水平镜像变换 tform = maketform(‘affine’,[-1 0 0;0 1 0; width 0 1]); B=imtransform(I, tform, ‘nearest’); %垂直镜像变换 tform2 = maketform(‘affine’, [1 0 0; 0 -1 0; 0 height 1]); C=imtransform(I, tform2, ‘nearest’); subplot(1,3,1),imshow(I); title(‘原图像’); subplot(1,3,2),imshow(B); title(‘水平图像’); subplot(1,3,3),imshow(C); title(‘垂直图像’);
P67
A = imread(‘apostles.jpg’); A = double(A); figure(1), imshow(uint8(A)); H = size(A); figure(2),B(1:H(1),1:H(2),1:H(3))=A(H(1):-1:1,1:H(2),1:H(3));%垂直镜像 imshow(uint8(B)); figure(3),C(1:H(1),1:H(2),1:H(3))=A(1:H(1),H(2):-1:1,1:H(3));%水平镜像 imshow(uint8(C));
P69
I = imread(‘apostles.jpg’); tform = maketform(‘affine’,[0 1 0; 1 0 0; 0 0 1]);%定义转置矩阵 B = imtransform(I, tform, ‘nearest’); subplot(1,2,1),imshow(I) title(‘原图像’); subplot(1,2,2),imshow(B) title(‘转置图像’);
P74
I = imread(‘C:\apostles.jpg’); A = imresize(I, 1.5, ‘nearest’); B = imresize(I, 1.5, ‘bilinear’); C = imresize(I, 1.5, ‘bicubic’); subplot(2,2,1), imshow(I), title(‘original’); subplot(2,2,2), imshow(A), title(‘nearest’); subplot(2,2,3), imshow(B), title(‘bilinear’); subplot(2,2,4), imshow(C), title(‘bicubic’);
P80
I = imread(‘apostles.jpg’); A = imrotate(I, 30, ‘nearest’);%旋转30度,最邻近插值 figure(1),imshow(A) B = imrotate(I, 45, ‘bilinear’,’loose’);%旋转45度,二次线性插值 figure(2),imshow(B)
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/116517.html原文链接:https://javaforall.cn