数字图像处理 - Matlab - 实验笔记一

第二章 数字图像基础

1. 用程序实现同时对比度实验。

程序代码:

clear
% 设置图片的长宽
m = 250;
n = 250;
% 设置第一张图的底层灰度
ground_gray1 = 64;
X1 = ones(m,n)*ground_gray1;
% 设置第二张图的底层灰度
ground_gray2 = 192;
X2 = ones(m,n)*ground_gray2;
% 设置共同的表层灰度
front_gray = 128;
% 设置表层的左上角的点的位置
m0 = 100;
n0 = 100;
% 表层宽度
step = 50;
% 给表层灰度赋值
X1(m0:m0+step,n0:n0+step) = front_gray;
% 显示对比图
subplot(1,2,1)
imshow(uint8(X1));
xlabel("front=128, ground=64")
X2(m0:m0+step,n0:n0+step)=front_gray;
subplot(1,2,2)
imshow(uint8(X2));
xlabel("front=128, ground=192")

输出结果:
contrast

2. 用程序实验空间分辨率变化效果。

程序代码:

clear
X = imread('pic.jpg');
% 把原图转为灰度图
X1 = rgb2gray(X);
% 显示原灰度图
subplot(1,2,1)
imshow(uint8(X1));
xlabel("256*256")
% 空间分辨率降低到原来的四分之一
[m,n] = size(X1);
X2 = X1(1:4:m,1:4:n);
% 显示处理后的图片
subplot(1,2,2)
imshow(uint8(X2));
xlabel("64*64")

输出结果:
spatial

3. 用程序实验幅度分辨率变化效果。

程序代码:

clear
X0 = imread('pic.jpg');
% 把原图转为灰度图
X = rgb2gray(X0);
% 获取图像大小
[m,n] = size(X);
% 预分配内存
X64	= zeros(m,n);
X16	= zeros(m,n);
X8	= zeros(m,n);
X4	= zeros(m,n);
X2	= zeros(m,n);
% 幅度分辨率降级处理
% 灰度0-255,n级则分成n-1段
% 64级
for i = 1:m
    for j = 1:n
        X64(i,j) = (255/63)*(round(X(i,j)/(255/63)));
    end
end
% 16级
for i = 1:m
    for j = 1:n
        X16(i,j) = (255/15)*(round(X(i,j)/(255/15)));
    end
end
% 8级
for i = 1:m
    for j = 1:n
        X8(i,j) = (255/7)*(round(X(i,j)/(255/7)));
    end
end
% 4级
for i = 1:m
    for j = 1:n
        X4(i,j) = (255/3)*(round(X(i,j)/(255/3)));
    end
end
% 2级
for i = 1:m
    for j = 1:n
        X2(i,j) = 255*(round(X(i,j)/255));
    end
end
% 显示所有级数的图片
subplot(2,3,1);
imshow(uint8(X));
title('256级');
subplot(2,3,2);
imshow(uint8(X64));
title('64级');
subplot(2,3,3);
imshow(uint8(X16));
title('16级');
subplot(2,3,4);
imshow(uint8(X8));
title('8级');
subplot(2,3,5);
imshow(uint8(X4));
title('4级');
subplot(2,3,6);
imshow(uint8(X2));
title('2级');

输出结果:
amplitude

发布了3 篇原创文章 · 获赞 0 · 访问量 94

猜你喜欢

转载自blog.csdn.net/qq_41016449/article/details/104911448
今日推荐