2013-02-22 126 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您的掩碼非零值。