实验目的
理解图像线性点运算、图像缩放和旋转原理,掌握对图像进行线性 点运算、图像缩放和旋转的实现方法。
实验内容
(1)对图像进行线性点运算。
(2)对图像比例放大1.5倍,比例缩小0.7倍,非比例放大到600×700像素,非比例缩小到300×400像素。
(3)对图像旋转30度、60度、90度、135度和180度。
实验步骤
图像进行线性点运算实验步骤
(1)新建图像进行线性点运算程序文件
(2)编写图像进行线性点运算程序如下:
% 实验人姓名
experimenter = 'TengMMVP';
% 读取图像
lena = imread('lenagray.jpg');
% 线性点运算参数
a_values = [1.5, 0.3, -1];
b_values = [50, 50, 255];
% 线性点运算及原始图像
figure('Name', '线性点运算', 'NumberTitle', 'off');
subplot(2,2,1), imshow(lena), title(['实验人:' experimenter]), xlabel('原图');
for i = 1:length(a_values)
subplot(2,2,i+1);
a = a_values(i); b = b_values(i);
transformed = a * double(lena) + b;
transformed(transformed > 255) = 255; % 防止溢出255
transformed(transformed < 0) = 0; % 防止低于0
imshow(uint8(transformed)), title(['实验人:' experimenter]), xlabel(['a=' num2str(a) ', b=' num2str(b)]);
end
(3)运行程序
图像缩放实验步骤
(1)新建图像缩放程序文件
(2)编写图像缩放程序如下:
% 实验人姓名
experimenter = 'TengMMVP';
% 读取图像
lena = imread('lenagray.jpg');
% 图像放大缩小及原始图像
figure('Name', '放大缩小', 'NumberTitle', 'off');
subplot(2,3,1), imshow(lena), title(['实验人:' experimenter]), xlabel('原图');
subplot(2,3,2), imshow(imresize(lena, 1.5)), title(['实验人:' experimenter]), xlabel('放大1.5倍');
subplot(2,3,3), imshow(imresize(lena, 0.7)), title(['实验人:' experimenter]), xlabel('缩小0.7倍');
subplot(2,3,4), imshow(imresize(lena, [600 700])), title(['实验人:' experimenter]), xlabel('非比例放大到600×700');
subplot(2,3,5), imshow(imresize(lena, [300 400])), title(['实验人:' experimenter]), xlabel('非比例缩小到300×400');
% 保留一个额外的子图位置,以便所有布局一致
subplot(2,3,6), axis off;
(3)运行程序
图像旋转实验步骤
(1)新建图像旋转程序文件
(2)编写图像旋转程序如下:
% 读取图像
cameraman = imread('cameraman.tif');
% 旋转图像
angles = [30, 60, 90, 135, 180];
rotated_images = cell(1, numel(angles));
for i = 1:numel(angles)
rotated_images{i} = imrotate(cameraman, angles(i));
end
% 显示所有旋转过的图像
figure('Name','cameraman处理','NumberTitle','off');
subplot(2,3,1), imshow(cameraman), title('实验人:TengMMVP'), xlabel('原图');
for i = 1:numel(angles)
subplot(2,3,i+1), imshow(rotated_images{i}), title('实验人:TengMMVP'), xlabel(['旋转 ' num2str(angles(i)) '度']);
end
(3)运行程序
实验数据记录
线性点运算
缩放
旋转
实验总结
1.从实验结果可知,当a大于1时,图像的对比度增加。暗处的细节更加清晰,而亮处的细节可能会被压缩。这使得图像中的细节更加突出,但也可能导致亮部细节的丢失。
2.从实验结果可知,当a小于1且大于0时,图像的对比度减小。亮处的细节更加清晰,而暗处的细节可能会被压缩。这使得图像中的亮部细节更加突出,但暗部细节可能会变得不太清晰。
3.当a等于-1时,图像会发生反转。亮的区域变暗,暗的区域变亮。这种情况下,图像会变得更暗且颜色会发生反转。
4.在图像放缩实验中,可观察到图像放缩了。
5.在图像旋转实验中,可观察到图像旋转了。