OpenCV中的Inpaint似乎只能接受8UC1图像。
OpenCV中是否存在用于CV_32FC1图像的Inpaint?或者有一些解决方法可以将其用于CV_32FC1图像?或者,这个函数有没有类似的功能?
发布于 2016-05-31 13:40:05
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);
https://stackoverflow.com/questions/31584710
复制相似问题