【发布时间】:2021-05-17 13:13:14
【问题描述】:
我正在尝试使用 Jeffrey Wu 1 的快速线性插值方法对图像进行插值,但它失败了。 Matlab标准方法是
[h_i, w_i, d_i] = size(img);
[xi, yi] = meshgrid(linspace(0, w_i-1, w_i), linspace(0, h_i-1, h_i));
p2p = zeros(size(yo,1), size(xo,2), 3, 'uint8');
for k = 1:d_i; p2p(:,:,k) = interp2(xi, yi, img(:,:,k), xo, yo); end
但是当切换到(Wu: function v = lininterp2(X, Y, V, x, y))时
for k = 1:d_i; p2p(:,:,k) = lininterp2(xi, yi, img(:,:,k), xo, yo); end
我收到了[length(X), length(Y)] does not match size(V)引起的错误
if ((length(X) ~= size(V, 1)) || (length(Y) ~= size(V, 2))),
error('[length(X), length(Y)] does not match size(V)'); end
大小相等 hX = hY = hV; wX = wY = wV; dX = dY = dV; 但因为 X,Y (xi,yi) 是网格网格,它们的长度(不是 h 或 w)肯定大于相应图像通道 V 的 h 或 w。知道这个图像插值如何工作吗?
【问题讨论】:
标签: matlab image-processing interpolation