我正在尝试为我的工作使用不同的低分辨率图像。最近,我正在阅读用于自动目标的低分辨率卷积神经网络 识别,他们没有提到他们制作低分辨率图像的方式。
特征计算的分辨率调整:显示影响 关于这些图像表示的性能的决议,我们 专注于从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')
答案 0 :(得分: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处开始子采样,以避免使用背景平均的像素。
根据您发布的图像判断,他们使用了这种平均方法。其他替代方案是在邻域中取最大值(如在卷积神经网络的最大池层中所做的那样),或者简单地进行子采样而不进行任何滤波(引入混叠,我不建议使用此方法)。