【发布时间】:2015-05-03 07:50:31
【问题描述】:
我有一个关于对矩阵/图像进行二次采样的快速问题。我正在尝试仅使用for 和/或while 循环来执行此操作。基本上这个问题是重申:
function output = subsample(img,2)
output = img(1:factor:end, 1:factor:end);
但是,现在我正在尝试重写函数以执行完全相同的过程,但使用 for 循环和/或 while 循环并且不使用两个或多个“:”(冒号)运算符并且不使用使用冒号运算符访问矩阵/向量元素。这是我目前所拥有的:
function output = subsamplex(img,factor)
[r, c] = size(img);
output = zeros(r/factor,c/factor);
j = 1;
i = 1;
for x = 1:r;
for y = 1:c;
j = factor*j-1;
i = factor*i-1;
output(j,i) = img(x,y);
end
end
end
虽然我得到的是调整大小的图像,但它全是黑色的,我试图找出我哪里出错了,或者我是否完全错了。任何正确方向的帮助将不胜感激。
【问题讨论】:
标签: image matlab for-loop image-processing matrix