【发布时间】:2015-11-02 21:48:04
【问题描述】:
在对图像进行2倍下采样时,下采样后的图像是灰色的。我应该怎么做才能将所有颜色分量添加到下采样实现中,使其成为彩色图像?
I = imread('lena.gif','gif');
[j k] = size(I)
x_new = j./2;
y_new = k./2;
x_scale = j./x_new;
y_scale = k./y_new;
M = zeros(x_new,y_new);
for count1 = 1:x_new
for count2 = 1:y_new
M(count1,count2) = I(count1.*x_scale,count2.*y_scale);
end
end
figure,imshow(I);
title('Original Image');
M = uint8(M);
figure,imshow(M);
title('Downsample');
【问题讨论】:
-
M只有一层并且没有 RGB 信息,因此结果为灰色是有道理的。如果输入图像,您应该使用所有 3 层。 -
那我怎样才能给 M 添加 RGB 信息呢?我是图像处理的新手:/ @NKN
-
你为什么不用
imresize?? -
我应该实现它,不应该使用内置函数@bla
-
如果
j是奇数等,您可能会遇到错误,如果./2已经完成...您需要在整个代码中使用round或floor...
标签: image matlab image-processing downsampling