如何在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 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;
相关文章:
- 将"打开的CV图像"中的"颜色"转换为整数格式
- 将RGB图像保存为PPM格式
- 如何在 OpenCV c++ 中压缩 TIFF 格式的图像?
- 将 BGR 图像转换为 jpeg 格式的 base64 字符串
- QImage:加载图像时自动检测格式
- 如何将 2d 数组转换为 svg 或 png 格式的数独图像?
- TensorFlow图像识别输出格式C
- 图像的像素格式始终返回 32 位
- 如何使用我的C程序将PDF转换为图像格式(jpeg,png,..)
- 如何从内存中读取原始图像 (YUV 4:2:2) 格式的图像数据
- CUDA OPENCV CVTCOLOR调用不会将图像转换为不同的格式
- C++ SDL2 图像加载格式与.bmp不同
- C++显示具有与.bmp格式不同的 SDL2 的图像
- OpenGL纹理格式,为OpenGL创建图像/纹理数据
- 生成不同格式的图像字节数据
- 使用16位签名格式打开CV不起作用..裁剪图像并重新调整图像大小
- 将指纹(十六进制格式)转换为图像
- CGIMAGE:支持的图像格式列表
- 格式转换在OpenGL图像中
- C++:将整数的文本文件转换为BMP格式的位图图像文件