1
我使用OpenCV3模糊和下采樣的圖像,我只想模糊由二進制掩碼等所限定的區域內的區域:模糊的圖像的非矩形區域中,則下采樣整個圖像 - 的OpenCV
之後,該區域模糊,我想圖像下取樣而不再模糊整個圖像,所以pyrDown
對我沒有用。
有什麼想法?
我使用OpenCV3模糊和下采樣的圖像,我只想模糊由二進制掩碼等所限定的區域內的區域:模糊的圖像的非矩形區域中,則下采樣整個圖像 - 的OpenCV
之後,該區域模糊,我想圖像下取樣而不再模糊整個圖像,所以pyrDown
對我沒有用。
有什麼想法?
棘手方式:
cv::Mat roi;
cv::blur(image & mask,roi,cv::Size(3,3));//Or whatever blurring you want
cv::Mat Result=(image & (~mask)) + roi;
cv::resize(result,result,cv::Size(New_Width,New_height)); // Or whatever downsampling you want
即對灰度圖像良好和棘手的解決方案,但是,該解決方案不工作如果'image'是一個3信道矩陣,以及'mask'二進制(單通道)面具。 – Finfa811
適用於3通道。只需添加:cv :: cvtColor(mask,mask,cv :: Gray2BGR);在上面的代碼 –
之前,我還將二進制掩碼克隆爲3通道圖像,問題在於矩陣中值的精度不同......我的錯誤,現在正在工作,謝謝。 – Finfa811