簡體   English   中英

如何在Magick ++中以灰度格式寫入圖像

[英]How to write image in grayscale format in Magick++

如何以灰度格式保存Magick::Image 我正在使用ImageMagick解碼圖像並將結果寫入OpenCV矩陣。 我現在正在做的是讀取彩色圖像,然后通過OpenCV將其轉換為灰度:

Magick::Image image("test.png");
cv::Mat mat(image.rows(), image.columns(), CV_8UC3);
image.write(0, 0, image.columns(), image.rows(), "BGR", Magick::CharPixel, mat.data);
cv::cvtColor(mat, mat, CV_BGR2GRAY);

我想將圖像寫到cv::Mat已經是灰度的,而沒有固定的彩色圖像。 這應該非常簡單,但是無法從文檔中找到它,因此不勝感激。

我也想知道如何檢測圖像是否包含Alpha通道?

要將圖像設置為灰度,在將圖像Blob寫入cv之前, Magick::Image.type( Magick::ImageType )調用Magick::Image.type( Magick::ImageType )

Magick::Image image("test.png");
image.type( Magick::GrayscaleType );
image.write(0, 0, image.columns(), image.rows(), "BGR", Magick::CharPixel, mat.data);

為了檢測圖像是否透明,只需檢查Magick::Image.matte()返回true。

Magick::Image image("test.png");
std::cout << "transparent = " << ( image.matte() ? "true" : "false") << std::endl;

暫無
暫無

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

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