数字图像处理实验三--图像基本运算

数字图像处理实验三

(图像基本运算)

实验内容:
  1. 对图像进行线性点运算。
  2. 对图像比例放大1.5倍,比例缩小0.7倍,非比例放大到600x700像素,非比例缩小到300x400像素。
  3. 对图像旋转30度、60度、90度、135度和180度。
实验步骤:
  1. 编写图像进行线性点运算如下
I = imread('lenagray.jpg')
I = im2double(I) %将图像转换成double类型
figure;
subplot(2,2,1);
imshow(I);
xlabel("原始图像","FontSize",7)

a = 1.5;b = 50;
I1 = a .* I + b/255;
subplot(2,2,2);
imshow(I1);
xlabel("a=1.5 b=50 增加对比度",FontSize=7);

a = 0.3;b = 50;
I2 = a .* I + b/255;
subplot(2,2,3);
imshow(I2);
xlabel("a=0.3 b=50 减少对比度",FontSize=7);

a = -1;b = 50;
I3 = a .*I + b/255;
subplot(2,2,4);
imshow(I3);
xlabel("a=-1 b=50 图像反色",FontSize=7);

效果图:数字图像处理实验三--图像基本运算_第1张图片

2.编写图像缩放程序如下:

I = imread('lenagray.jpg');
I = im2double(I);

P1 = imresize(I,1.5,"bicubic"); %三次内插法
P2 = imresize(I,0.7,"bicubic"); %三次内插法
P3 = imresize(I,[600,700],"nearest"); %最近邻法
P4 = imresize(I,[300,400],"bilinear"); %双线性插值法

figure(1);
subplot(3,2,1);
imshow(I);
xlabel("原始图像");

subplot(3,2,3);
imshow(P1);
xlabel("比例放大1.5倍");
subplot(3,2,4);
imshow(P2);
xlabel("比例缩小0.7倍");
subplot(3,2,5);
imshow(P3);
xlabel("非比例放大600x700像素");
subplot(3,2,6);
imshow(P4);
xlabel("非比例缩小到300x400像素");

缩放效果图:数字图像处理实验三--图像基本运算_第2张图片

3.编写图像旋转程序如下:

I = im2double(I);

P1 = imrotate(I,30,'bicubic');
P2 = imrotate(I,60,'bicubic');
P3 = imrotate(I,90,'bicubic');
P4 = imrotate(I,135,'bicubic');
P5 = imrotate(I,180,'bicubic');

figure(1);
subplot(3,2,1)
imshow(I);
xlabel("原图像");

subplot(3,2,2)
imshow(P1);
xlabel("旋转30°");
subplot(3,2,3)
imshow(P2);
xlabel("旋转60°");
subplot(3,2,4)
imshow(P3);
xlabel("旋转90°");
subplot(3,2,5)
imshow(P4);
xlabel("旋转135°");
subplot(3,2,6)
imshow(P5);
xlabel("旋转180°");

旋转效果图:数字图像处理实验三--图像基本运算_第3张图片

问题讨论:

​点运算可以改变图像数据占据的灰度值范围。对于一幅图像来讲,输入一个图像经过点运算可以输出一幅图像,输出图像中的每个像素点的灰度值仅由相应输入点的灰度值决定。图像的旋转是以图像的中心为原点,将图像上的所有像素都旋转同一个角度,图像的位置会发生改变。

你可能感兴趣的:(数字图像处理,opencv,图像处理)