opencv - 适用于CV_32FC1的Opencv Inpaint吗?

标签 opencv computer-vision

在OpenCV中,Inpaint似乎只能接受8UC1图像。

OpenCV中是否存在用于CV_32FC1图像的Inpaint?还是有一些解决方法,如何将其用于CV_32FC1图像?还是有这个功能的类似物?

最佳答案

Inpaint仍然不支持float32数据。问题是打开状态(https://github.com/Itseez/opencv/issues/4542)。

您可以使用下面的代码作为替代。

src32f.convertTo(src8b, CV_8U, 255.0f/max, min);

inpaint(src8b, mask, dst8b, inpaintRadius, flags);

dst8b.convertTo(dst32f, CV_32F, max/255.0f, -min);

//optional, copy only inpainted data
mask.convertTo(mask, CV_32F, 1 / 255.0f);
dst32f = src32 + (dst32f - src32).mul(mask);

关于opencv - 适用于CV_32FC1的Opencv Inpaint吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31584710/

相关文章:

opengl - 使用 opencv 确定外部相机到具有世界空间对象的 opengl

c++ - 使用 GENICAM API 和 C++ 使用 OpenCV 创建适用于各种相机的程序

performance - 高效计算光流参数 - MATLAB

c++ - 拼接后从源图像计算坐标

android - opencv,链接C静态库../lib/armeabi-v7a/liblibjpeg.a

c - 关于 OpenCV 中的内存管理

java - 如何在Java包装器中使用Opencv的分区功能

computer-vision - 特征脸是从什么生成的?

python - 如何屏蔽图像中除内部特定颜色之外的所有内容

image-processing - 什么是计算机视觉中的各向异性缩放?