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