前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >《数字图像处理原理与实践(MATLAB版)》一书之代码Part2[通俗易懂]

《数字图像处理原理与实践(MATLAB版)》一书之代码Part2[通俗易懂]

作者头像
全栈程序员站长
发布2022-07-07 17:25:30
2750
发布2022-07-07 17:25:30
举报

大家好,又见面了,我是全栈君。

本文系《数字图像处理原理与实践(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

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2022年1月2,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档