图像基本运算

图像基本运算

Scroll Down

图像基本运算

基本要求
理解图像线性点运算、图像缩放和旋转原理,掌握对图像进行线性点运算、图像缩放和旋转的实现方法,对实验结果进行分析,得出实验结论并撰写实验报告。

1. 实验内容

(1)对图像进行线性点运算。
%清理
clc;
close all;
clear all;

%读取图片
img = imread('lenagray.jpg');
%转换类型为double
img_a = im2double(img);

figure();
subplot(2,2,1);
%显示原图像
imshow(img_a);
title('实验人:戚浩强');
xlabel('(a) 原图像');

%增加对比度
a = 1.5; b = 50;
img_b = a .* img_a + b / 255;
subplot(2,2,2);
%显示运算后图像
imshow(img_b);
title('实验人:戚浩强');
xlabel('(b) a = 1.5,b = 50,增加对比度');

%减小对比度
a = 0.3; b = 50;
img_c = a .* img_a + b / 255;
subplot(2,2,3);
%显示运算后图像
imshow(img_c);
title('实验人:戚浩强');
xlabel('(c) a = 0.3,b = 50,减小对比度');

%图像反色
a = -1; b = 50;
img_d = a .* img_a + b / 255;
subplot(2,2,4);
%显示运算后图像
imshow(mat2gray(img_d));    
title('实验人:戚浩强');
xlabel('(d) a = -1,b = 50,图像反色');%增加对比度

image.png

(2)对图像比例放大1.5倍,比例缩小0.7倍,非比例放大到600x700像素,非比例缩小到300x400像素。
%清理
clc;
close all;
clear all;

img_a = imread('lenagray.jpg');
figure();
subplot(2,3,1);
imshow(img_a);
title('实验人:戚浩强');
xlabel('(a) 原图像');

%等比例放大1.5倍
img_b = imresize(img_a, 1.5);
subplot(2,3,2);
imshow(img_b);
title('实验人:戚浩强');
xlabel('(b) 等比例放大1.5倍');

%等比例缩小0.7倍
img_c = imresize(img_a, 0.7);
subplot(2,3,3);
imshow(img_c);
title('实验人:戚浩强');
xlabel('(c) 等比例缩小0.7倍');

%非比例放大到600x700像素
img_d = imresize(img_a, [600 700]);
subplot(2,3,4);
imshow(img_d);
title('实验人:戚浩强');
xlabel('(d) 非比例放大到600x700像素');

%非比例缩小到300x400像素
img_e = imresize(img_a, [300 400]);
subplot(2,3,6);
imshow(img_e);
title('实验人:戚浩强');
xlabel('(e) 非比例缩小到300x400像素');

image.png

(3)对图像旋转30度、60度、90度、135度和180度。
%清理
clc;
close all;
clear all;

img_a = imread('cameraman.tif');
figure();
%原图像
subplot(2,3,1);
imshow(img_a);
title('实验人:戚浩强');
xlabel('(a) 原图像');

%旋转30度
img_b = imrotate(img_a, 30);
subplot(2,3,2);
imshow(img_b);
title('实验人:戚浩强');
xlabel('(b) 旋转30度(显示全部)');

%旋转60度
img_c = imrotate(img_a, 60, 'crop');
subplot(2,3,3);
imshow(img_c);
title('实验人:戚浩强');
xlabel('(c) 旋转60度(截去部分)');

%旋转90度
img_d = imrotate(img_a, 90);
subplot(2,3,4);
imshow(img_d);
title('实验人:戚浩强');
xlabel('(d) 旋转90度(显示全部)');

%旋转135度
img_e = imrotate(img_a, 135, 'crop');
subplot(2,3,5);
imshow(img_e);
title('实验人:戚浩强');
xlabel('(e) 旋转135度(截去部分)');

%旋转180度
img_f = imrotate(img_a, 180);
subplot(2,3,6);
imshow(img_f);
title('实验人:戚浩强');
xlabel('(f) 旋转180度(显示全部)');

image.png

总结

如图一,经过线性点运算变换后的图形,图(b)相较于图(a)对比度增加;图(c)相较于图(a)对比度减小;图(d)是图(a)的反色图像。由此可知,a > 1,图像对比度增加;a < 1,图像对比度减小;a < 0,则暗区将变亮,亮区将变暗,完成图像求补。

如图二,经过比例缩放,图(b)和图(c)为等比例缩放,相较于图(a)原图形来说变化不是很明显,但图(d)和图(e)为非等比例缩放,相较于图(a)原图像来说变畸形了。由此可知,图像的较小等比例缩放对于图像基本没有影响,但非等比例的缩放会使图像显示畸形。

如图三,是图像的旋转。通过从图(a)到图(f)的变换过程可以看出图像的改变不是很明显,但是能观察出图像中某些点的信息丢失。由此可知,图像选转以后可能会发生一些细微的变化,导致某些点的信息丢失。