在这段代码的基础上尝试对图像的16倍减采样,在同一窗口中查看其原图、4倍、16倍减采样效果,并思考将一幅图如果进行4 倍、16 倍和64 倍增采样会出现什么情况?
时间: 2024-02-21 20:57:47 浏览: 232
tu.rar_2倍减_2倍减采样_8倍减采样_tu
对图像进行16倍减采样的代码如下:
```matlab
a = imread('e:\i_lena.JPG');
b = rgb2gray(a);
[wid,hei]=size(b);
quartimg = zeros(wid/16+1,hei/16+1);
i1 = 1; j1 = 1;
for i=1:16:wid
for j=1:16:hei
quartimg(i1,j1) = b(i,j);
j1 = j1 + 1;
end
i1 = i1 + 1;
j1 = 1;
end
figure
subplot(1,3,1)
imshow(a)
title('Original Image')
subplot(1,3,2)
imshow(uint8(quartimg*16))
title('4x Downsampled Image')
subplot(1,3,3)
imshow(uint8(quartimg))
title('16x Downsampled Image')
```
首先,代码读入了一张彩色图像,并将其转换为灰度图像。然后,通过循环遍历灰度图像的像素,在每16个像素处进行采样,将采样得到的像素值存储到`quartimg`矩阵中。最后,通过`subplot`函数在同一窗口中显示原图、4倍减采样和16倍减采样的效果,并使用`title`函数为每个子图设置标题。
对于将一幅图进行4倍、16倍和64倍增采样的情况,会出现图像失真的情况。增采样本质上是在图像中插入像素,因此增加的像素是没有实际信息的,仅仅是通过线性插值来填充的。当增加的倍数过大时,插入的像素会越来越多,失真程度也会越来越大。因此,增采样倍数过大会导致图像变得模糊、失真。
阅读全文