2013-02-22 123 views
2

我想在OpenCV中的浮点矩阵中重建缺失值。该垫子包含最小值0 浮点值我尝试这样做:浮点矩阵中的缺失值OpenCV

  1. 将浮点垫CV_8U。当(在浮垫显示为黑色点与0)中显示的图像CV_8U:

    floating Mat to image

  2. 生成通过检查4邻域与当前像素是零ATLEAST一个非零的像素的掩模。 面膜描绘像素重构(255缺失像素和0 - 否则)掩码是:

mask

  1. 用于inpaint function与来自步骤2在步骤1和掩模获得的图像修补的结果:

inpainted result

现在我必须在像素值缺少位置(上图),但是这个内容不能直接应用到浮点Mat上。它只接受8位1通道或3通道图像。 如何重建/获取浮点Mat中的缺失值?

回答

0

如果从浮动UCHAR转换损失精度是整个图像可以接受的,你可以这样做:

cv::Mat result; 
inpainted_image.convertTo(result, CV_32F); 

如果你只是想填补缺失值,做到上面,然后转移result您的掩码非零值。