相关疑难解决方法(0)

MATLAB与C++对比OpenCV - imresize

我有以下MATLAB代码,我想传输到C++

假设Gr是2d矩阵和1/newscale == 0.5

Gr = imresize(Gr, 1 / newScale);
Run Code Online (Sandbox Code Playgroud)

MATLAB文档中:

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一样吗?

c++ matlab interpolation opencv image-processing

5
推荐指数
1
解决办法
7725
查看次数

imresize - 试图理解双三次插值

我正在尝试理解这个功能:

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
内核是立方的.

但除此之外是什么意思?我认为这就像创建一个稍后会调用的函数?

matlab interpolation image-processing

5
推荐指数
2
解决办法
8346
查看次数

标签 统计

image-processing ×2

interpolation ×2

matlab ×2

c++ ×1

opencv ×1