[英]PNG image is not loading properly in OpenCV
我正在使用以下代碼查看以下圖像。
(如果看不到圖像,請右鍵單擊以上空間並保存圖像。)圖像為32位。 OpenCV顯示白色圖像。 它是白色箭頭圖像,周圍帶有alpha值。
Mat img = imread("FordwardIcon.png", CV_LOAD_IMAGE_UNCHANGED | CV_LOAD_IMAGE_ANYDEPTH);
cout << img.depth() << "\t" << img.channels() << endl;
imshow("img", img);
waitKey(0);
請讓我知道如何正確加載圖像
不用擔心,您的圖片已正確加載。
問題更多是您希望imshow()接受alpha通道(不是)。
目前,Opencv(3.0)似乎無法加載具有透明度的png圖像(也稱為“ alpha通道”)。 要使用cv::imread()
加載此類圖像,您需要首先刪除透明通道,並用某種顏色替換它。
使用Imagemagick工具在Linux上可以輕松完成此操作。 例如:
convert input.png -background '#00ff00' -flatten result.png
您可以使用file
工具檢查圖像是否具有圖像。 在您提供的圖像上:
>$ file input.png
給出:
input.png: PNG image data, 52 x 32, 8-bit gray+alpha, non-interlaced
而
>$ file result.png
給
result.png: PNG image data, 52 x 32, 8-bit colormap, non-interlaced
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.