我有以下MATLAB代码,我想传输到C++
假设Gr是2d矩阵和1/newscale == 0.5
Gr = imresize(Gr, 1 / newScale);
Run Code Online (Sandbox Code Playgroud)
B = imresize(A,scale)返回图像B,其是尺寸乘以A的尺寸.输入图像A可以是灰度,RGB或二值图像.如果scale在0和1.0之间,则B小于A.如果scale大于1.0,则B大于A.
所以这意味着我将得到一个2D矩阵== matrix_width/2和matrix_height/2
如何计算这些值?根据文档的默认值来自最接近的4X4的三次插值.
我找不到C++的示例代码.你能提供这些代码的链接吗?
我也发现了这个OpenCV函数resize.
它和MATLAB一样吗?
我正在尝试理解这个功能:
function [weights, indices] = contributions(in_length, out_length, ...
scale, kernel, ...
kernel_width, antialiasing)
if (scale < 1) && (antialiasing)
% Use a modified kernel to simultaneously interpolate and
% antialias.
h = @(x) scale * kernel(scale * x);
kernel_width = kernel_width / scale;
else
% No antialiasing; use unmodified kernel.
h = kernel;
end
Run Code Online (Sandbox Code Playgroud)
我真的不明白这条线是什么意思
h = @(x) scale * kernel(scale * x);
Run Code Online (Sandbox Code Playgroud)
我的规模是0.5
内核是立方的.
但除此之外是什么意思?我认为这就像创建一个稍后会调用的函数?