簡體   English   中英

PNG圖片無法在OpenCV中正確加載

[英]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

參見http://www.imagemagick.org/script/convert.php

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM