1

我正在尝试为我的工作使用不同的低分辨率图像。最近,我正在阅读用于自动目标识别的低分辨率卷积神经网络,其中他们没有提到他们如何制作低分辨率图像。

特征计算的分辨率适应:为了显示分辨率对这些图像表示的性能的影响,我们关注从 200 × 200 到 10 × 10 像素的七种特定分辨率

这是论文中的示例图像在此处输入图像描述

有人请帮我在MATLAB中实现这个方法吗?

目前,我正在使用这种方式制作低分辨率图像:

img = im2double(imread('cameraman.tif'));
conv_mat = ones(6) / 36;
img_low = convn(img,conv_mat,'same');

figure, imshow(img), title('Original');
figure, imshow(img_low), title('Low Resolution')
4

1 回答 1

3

你有一个好的开始。卷积使得每个像素都包含 6x6 邻域的平均值。现在剩下的就是在每个 6x6 邻域中只保留一个像素。该像素将具有已删除信息的平均值:

img = im2double(imread('cameraman.tif'));
conv_mat = ones(6) / 36;
img_low = convn(img,conv_mat,'same');
img_low = img_low(3:6:end,3:6:end)

figure, imshow(img), title('Original');
figure, imshow(img_low), title('Low Resolution')

简单地3:6:end指示要保留哪些列和哪些行。我从 3 开始二次采样,以避免与背景平均的像素。

从您发布的图像来看,他们使用了这种平均方法。其他替代方法是取邻域中的最大值(就像在卷积神经网络的最大池化层中所做的那样),或者简单地进行子采样而不进行任何过滤(引入混叠,我不推荐这种方法)。

于 2018-01-25T05:19:37.663 回答