OpenCV imwrite無損保存圖像及解決保存圖像爲黑屏的方法

OpenCV保存圖像時出現黑屏,原因是保存圖像被規劃化,當保存圖像後打開圖像當然全是黑。

解決辦法:保存圖像前先去規劃化,將其要保存的圖像的Mat變量乘上255,別可解決。如:

Mat plane[] = { padded,Mat::zeros(padded.size(),CV_32F) };

//去歸一化,以防保存圖像爲黑色
plane[0] = plane[0] * 255;

OpenCV頻域濾波後處理效果: 

未去規劃保存:

 去歸一化後保存效果便是頻域濾波右圖所示。

無損保存圖像的方法:

//無損保存處理結果
std::vector<int> compression_params;
compression_params.push_back(CV_IMWRITE_PNG_COMPRESSION);
compression_params.push_back(9);   // 無壓縮png. 圖像保存質量最高
compression_params.push_back(cv::IMWRITE_PNG_STRATEGY);
compression_params.push_back(cv::IMWRITE_PNG_STRATEGY_DEFAULT);

參考博文:

1、使用cv2.imwrite保存的圖像是全黑的

2、opencv imwrite()函數保存png格式的圖像

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章