CImg立方亚像素定位

2024-10-03 15:28:11 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图理解使用C++ Image Processing Toolkit的CImg.h文件从图像中提取值的代码在做什么。在

函数使用以下语句:

float dx(float x, float y, CImg<float> &i) {
    float val = i.cubic_atXY(x + 0.5, y);
    return val;
}

我认为它是在寻找坐标(x+0.5,y)上的三次插值亚像素。我发现这个函数是在CImg.h文件的12450行附近定义的,但是我真的不知道如何将它转换成其他代码,比如python。在

使用这种库的人能理解吗?在


Tags: 文件函数代码图像imagereturnval语句
2条回答

cubic_atXY是一些看起来很乏味的代码,但它基本上都是简单的算术运算,在其他编程语言中应该具有类似的语法。只有不通用的行是这样的,例如:

^{1}$

是个C型演员。它将对atXY()的调用结果强制转换为Tfloat。顺便说一下,这看起来像双三次插值。在

atXY()调用检查用于进行双三次插值的点是否在帧限制内。 正如卡尔顿所说和我所证实的,这是一个双三次插值,用于提取图像内部任何位置的子像素值。 我试图将代码转换为python,最后执行以下代码,得到与CImg.h函数相同的结果。在

*考虑到我直接用逻辑运算符实现atXY()函数,并且索引(x,y)被改为(y,x),因为python使用(idRow,idCol)作为矩阵索引

^{1}$

相关问题 更多 >