数字图像处理_实验3_图像的基本运算

实验目的

理解图像线性点运算、图像缩放和旋转原理,掌握对图像进行线性 点运算、图像缩放和旋转的实现方法。

实验内容

(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.在图像旋转实验中,可观察到图像旋转了。

  • 7
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值