填充 OpenCV Mat 的零值元素

时间:2021-08-02 00:04:36

标签: python c++ opencv filtering interpolation

我有 const ParentComponent = (props) => { return ( <Formik enableReinitialize initialValues={testState} validateOnChange onSubmit={onSubmit} > {(formProps) => <MyFormComponent {...formProps} handleDirty={handleFormDirty}/>} </Formik> ); } const MyFormComponent = ({handleDirty,...formProps}) => { useEffect(() => { formProps.dirty && !isEmpty(formProps.touched) && handleFormDirty(); },[formProps.touched,formProps.dirty,handleDirty]); return ( <TestComponent/> ); } 个像下面这样的对象:

enter image description here

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

我正在寻找一个过滤器来用一些列线性插值填充那些零列。例如,之前的 Mat 最终会像:

enter image description here

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

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

1 个答案:

答案 0 :(得分:0)

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

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