Matlab|数字图像处理01|图片采样

1、将图 pic26转换成 256 级灰度图像,64 级灰度图像,32 级灰度图像,8 级灰度图像

pic6
结果:
请添加图片描述

matlab代码如下:

%读取原图像
a = imread('C:\Users\...\pic26.png');
%将 RGB 图像或颜色图转换为灰度图
b = rgb2gray(a);
%打开图像窗口并修改标题
figure('NumberTitle', 'off','Name','实验结果')
%将六张图显示在同一张图上(3x2)
subplot(3,2,1);
imshow(a)%原始图像
xlabel('图1: 原始图像')%横坐标批注

subplot(3,2,2);
imshow(b)%256级别灰度图像
xlabel('图2: 256级灰度图像')

%宽度和高度![请添加图片描述](https://img-blog.csdnimg.cn/912d228b2fd04be5ba425c72e0b1c182.png)

[wid,hei]=size(b);

%零矩阵
img64 = zeros(wid,hei);
img32 = zeros(wid,hei);
img8 = zeros(wid,hei);
img2 = zeros(wid,hei);

%function
%64级灰度图像
img64 = trans_g(img64,wid,hei,b,4)
% img64 = trans_gray(img64,wid,hei,b,4)%函数保存在trans_gray.m文件中
subplot(3,2,3);
imshow(uint8(img64),[0,63])
xlabel('图3: 64级灰度图像')

%32级灰度图像
img32 = trans_g(img32,wid,hei,b,8)
subplot(3,2,4);
imshow(uint8(img32),[0,31])
xlabel('图4: 32级灰度图像')

%8级
img8 = trans_g(img8,wid,hei,b,32)
subplot(3,2,5);
imshow(uint8(img8),[0,7])
xlabel('图5: 8级灰度图像')

%2级
img2 = trans_g(img2,wid,hei,b,128)
subplot(3,2,6);
imshow(uint8(img8),[0,2])
xlabel('图6: 2级灰度图像')

%储存图片
saveas(gcf, 'C:\Users\...\result.jpg', 'jpg')

%灰度转换函数
function [op] = trans_g(img_x,wid,hei,b,n)
for i=1:wid
    for j=1:hei
        img_x(i,j) = floor(b(i,j)/n);
    end
end
op = img_x
end




%处理
%64级
% for i=1:wid
%     for j=1:hei
%         img64(i,j) = floor(b(i,j)/4);
%     end
% end
% figure
% imshow(uint8(img64),[0,63])

%32级
% for i=1:wid
%     for j=1:hei
%         img32(i,j) = floor(b(i,j)/8);
%     end
% end
% figure
% imshow(uint8(img32),[0,31])

%8级
% for i=1:wid
%     for j=1:hei
%         img8(i,j) = floor(b(i,j)/32);
%     end
% end
% figure
% imshow(uint8(img8),[0,7])

%2级
% for i=1:wid
%     for j=1:hei
%         img2(i,j) = floor(b(i,j)/128);
%     end
% end
% figure
% imshow(uint8(img8),[0,2])

猜你喜欢

转载自blog.csdn.net/ariarko/article/details/128541110