opencv imwrite保存圖片花屏的問題

  • 問題:在項目中用opencv的imwrite保存圖片出現花屏的問題,以下圖:
    函數

  • 思路:
    1.  由於項目中的圖像數據(float類型,0-255)是在GPU中,保存的話:能夠用CPU保存圖片,也能夠用GPU保存圖片。GPU保存圖片沒有花屏的現象,所以,初步懷疑,是由於數據從GPU拷貝到CPU的時候丟了。
        後來測試,發現拷貝到CPU的數據,再拷回GPU保存依然沒有問題。
    2. 後來發現,將須要保存的圖片格式改成CV_32F3C後,保存不存在問題。而以前CV_8U3C的就會出現花屏,賦值的話就是簡單的將float的值賦給像素點。

  • 解決方法:
    1. 利用opencv的convertTo函數,對Mat的格式進行轉換:
     
     2. 若想直接賦值:觀察以前的花屏的圖像,是白色和黑色的附近出現花屏。所以,頗有可能與0和255附近的溢出有關:
            這個地方我也不太明白:本身寫的clip_value也是處理0-255以前的越界問題,不行,出現花屏。改成opencv自帶的saturate_cast即可以了,但網上說saturate_cast的原理就是小於0的賦值0,大於255的賦值255.    在網上看見有一我的和我遇到類似的狀況,mark一下:http://blog.csdn.net/mjlsuccess/article/details/12401839
相關文章
相關標籤/搜索