数字图像处理-采样量化(Matlab)

数字图像处理-采样量化(Matlab)

均匀采样

 假设原始图片空间分辨率为512X512,从该图像中,每隔一行删去一行和每隔一列删去一列可以得到256X256的图像,既2X2=4倍降采样,从256X256的图像中,每隔一行删去一行和每隔一列删去一列可得到128X128的图像,等价于对512X512原图像进行4X4=16倍降采样。
在这里插入图片描述

%--------Matlab函数-------
% a=
%    1     2     3     4     5
%    1     2     3     4     5
%    1     2     3     4     5
%    1     2     3     4     5
%    1     2     3     4     5
a=a(1:2:end,1:2:end); % 每隔一行重新采样一个点和每隔一列重新采样一个点

量化

 假设原始图像灰度级分辨率为256,即 2 8 = 256 2^8=256 28=256,此时图像的各个像素点的灰度值介于[0,255],当灰度级分辨率降为32,即 2 5 = 32 2^5=32 25=32,图像的各个像素点灰度值介于[0,31],灰度分辨率越低,图像的视觉效果越差。

%--------Matlab函数-------
histeq(pic,level);  %pic为输入图像,level为指定直方图均衡化后的灰度级数

代码块

clear;
close all;
pic1=imread('lena512.bmp');

figure('name','降采样');
for i=1:6
    repic1=pic1(1:2^i:end,1:2^i:end);   %从第一行第一列开始,间隔2^i采样一个点,如,1357 因为是行和列分别间隔,所以采样倍数为(2^i)^2
    str=num2str(2^(9-i));    %整形数字转成字符串
    str1=num2str((2^i)^2);     %采样倍数: 512*512->256*256  (2^1)^2=4倍
    subplot(2,3,i);              %绘图23列,第i个
    imshow(repic1);
    title([[[[[str,'*'],str],' '],str1],'倍']);      %拼接字符串 str*str
end                %for循环记得用end结束

level=[64,32,16,8,4,2];
figure('name','量化');
for i=1:6
    repic2=histeq(pic1,level(i));  %调整灰度等级
    str=num2str(level(i));
    subplot(2,3,i);
    imshow(repic2);
    title(['灰度等级',str]);
end

运行结果

  • 降采样:

在这里插入图片描述

  • 量化:

在这里插入图片描述

  • 7
    点赞
  • 68
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值