【发布时间】:2021-08-13 06:20:31
【问题描述】:
我已尝试阅读维基百科页面 https://en.wikipedia.org/wiki/Bilinear_interpolation 上的双线性插值,并且我已经实现了其中一种算法,我想知道我是否做对了。
这是我试图在代码中实现的:
for(int i = 0; i < w; i++) {
for( int j = 0; j < h; j++) {
new_img(i,j,0) = old_img(i,j,0)*(1-i)(1-j) + old_img(i+1,j,0)*i*(1-j) + old_img(i,j+1)*(1-i)*j + old_img(i+1,j+1,0)*i*j;
}
}
是这样实现的吗?
【问题讨论】:
-
双线性插值处理将值“置于”已知像素之间。例如,如果您想重新缩放或扭曲图像并将值放在缺失的地方。在等式中,索引 x、y 不是整数而是浮点数,目标是在 x 轴和 y 轴上找到 0 到 1 之间的位置值。试着准确地解释你想要做什么。
-
我想使用双线性插值来调整图像大小
-
在opencv中的resize函数中实现(有实现它的标志INTER_LINEAR)。你想自己实现吗?
-
是的,我想自己实现。我正在自学计算机视觉,并且正在学习华盛顿大学的课程,这是作业中的一个问题:github.com/holynski/cse576_sp20_hw2
-
这个答案帮助我解决了理解和解决问题:stackoverflow.com/a/26143655/10613210
标签: opencv computer-vision bilinear-interpolation