【发布时间】:2017-02-19 21:43:00
【问题描述】:
我刚刚开始学习图像处理和 Matlab,我正在尝试使用平均 4 个像素来缩小图像。这意味着对于每 4 个原始像素,我计算平均值并产生 1 个输出像素。 到目前为止,我有以下代码:
img = imread('bird.jpg');
row_size = size(img, 1);
col_size = size(img, 2);
res = zeros(floor(row_size/2), floor(col_size/2));
figure, imshow(img);
for i = 1:2:row_size
for j = 1:2:col_size
num = mean([img(i, j), img(i, j+1), img(i+1, j), img(i+1, j+1)]);
res(round(i/2), round(j/2)) = num;
end
end
figure, imshow(uint8(res));
此代码设法缩小图像,但将其转换为灰度。 我知道我可能必须计算输出像素的 RGB 分量的平均值,但我不知道如何访问它们、计算平均值并将它们插入结果矩阵。
【问题讨论】:
-
查看工作空间并查看变量 img。它应该至少是一个 NxMx3 矩阵,其中 N 和 M 是图像的尺寸。您可以像以往一样访问 Matlab 中每个矩阵的每个元素。尝试同时使用命令“who”和“whos”
-
如果你做A=size(img),你能写出你得到的东西吗? A 中有哪些值?
标签: image matlab image-processing rgb image-scaling