当前位置:网站首页>《数字图像处理原理与实践(MATLAB版)》一书之代码Part2[通俗易懂]
《数字图像处理原理与实践(MATLAB版)》一书之代码Part2[通俗易懂]
2022-07-07 18:11:00 【全栈程序员站长】
大家好,又见面了,我是全栈君。
本文系《数字图像处理原理与实践(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
边栏推荐
猜你喜欢
LeetCode力扣(剑指offer 36-39)36. 二叉搜索树与双向链表37. 序列化二叉树38. 字符串的排列39. 数组中出现次数超过一半的数字
数据孤岛是企业数字化转型遇到的第一道险关
ASP.NET学习& asp‘s one word
九章云极DataCanvas公司获评36氪「最受投资人关注的硬核科技企业」
最多可以参加的会议数目[贪心 + 优先队列]
Nunjuks template engine
Classification automatique des cellules de modules photovoltaïques par défaut dans les images de lecture électronique - notes de lecture de thèse
多个线程之间如何协同
一键部署Redis任意版本
vulnhub之Funfox2
随机推荐
vulnhub之tre1
Flink并行度和Slot详解
Traversée des procédures stockées Oracle
Cuda版本不一致,编译apex报错
CUDA versions are inconsistent, and errors are reported when compiling apex
Oracle 存储过程之遍历
Force buckle 599 Minimum index sum of two lists
最多可以参加的会议数目[贪心 + 优先队列]
大厂经典指针笔试题
关于cv2.dnn.readNetFromONNX(path)就报ERROR during processing node with 3 inputs and 1 outputs的解决过程【独家发布】
Classification automatique des cellules de modules photovoltaïques par défaut dans les images de lecture électronique - notes de lecture de thèse
Machine learning notes - explore object detection datasets using streamlit
使用高斯Redis实现二级索引
gorilla官方:golang开websocket client的示例代码
Simulate the implementation of string class
Creation of kubernetes mysql8
Force buckle 459 Duplicate substring
【mysql篇-基础篇】事务
torch.nn.functional.pad(input, pad, mode=‘constant‘, value=None)记录
JVM GC garbage collection brief