填充 OpenCV Mat 的零值元素
Filling zero-value elements of an OpenCV Mat
我有 Mat
个像下面这样的对象:
在这样的矩阵中,一些列由预定义(固定)数量的列插入,其中的值全为零。
我正在寻找一个过滤器来用一些按列的线性插值来填充那些零列。比如之前的Mat最后会变成这样:
请注意,非零列的原始值未更改。在此示例中,垫子尺寸为 3x7,但在我的应用程序中,实际尺寸通常比上面的尺寸大,例如 300x400 或更多。
我自己写了代码来做到这一点。但是,我想知道是否存在使用 OpenCV 的本机功能执行相同操作的简化方法。
如果您的零是特定模式中的列,您可以对非零值进行采样,然后调整大小(如评论中所述):
cv2.resize(mat[:, 0::3], mat.shape)
我有 Mat
个像下面这样的对象:
在这样的矩阵中,一些列由预定义(固定)数量的列插入,其中的值全为零。
我正在寻找一个过滤器来用一些按列的线性插值来填充那些零列。比如之前的Mat最后会变成这样:
请注意,非零列的原始值未更改。在此示例中,垫子尺寸为 3x7,但在我的应用程序中,实际尺寸通常比上面的尺寸大,例如 300x400 或更多。
我自己写了代码来做到这一点。但是,我想知道是否存在使用 OpenCV 的本机功能执行相同操作的简化方法。
如果您的零是特定模式中的列,您可以对非零值进行采样,然后调整大小(如评论中所述):
cv2.resize(mat[:, 0::3], mat.shape)