Opencv Inpaint for CV_32FC1?

时间:2015-07-23 10:28:19

标签: opencv computer-vision

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

OpenCV中是否存在用于CV_32FC1图像的Inpaint?或者有一些解决方法如何将它用于CV_32FC1图像?或者是否有这种功能的类似物?

1 个答案:

答案 0 :(得分:1)

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);