填充 OpenCV Mat 的零值元素

Filling zero-value elements of an OpenCV Mat

我有 Mat 个像下面这样的对象:

在这样的矩阵中,一些列由预定义(固定)数量的列插入,其中的值全为零。

我正在寻找一个过滤器来用一些按列的线性插值来填充那些零列。比如之前的Mat最后会变成这样:

请注意,非零列的原始值未更改。在此示例中,垫子尺寸为 3x7,但在我的应用程序中,实际尺寸通常比上面的尺寸大,例如 300x400 或更多。

我自己写了代码来做到这一点。但是,我想知道是否存在使用 OpenCV 的本机功能执行相同操作的简化方法。

如果您的零是特定模式中的列,您可以对非零值进行采样,然后调整大小(如评论中所述):

cv2.resize(mat[:, 0::3], mat.shape)