另一个图像处理的开源的库:Magick++
原文地址:https://blog.csdn.net/weixin_30732825/article/details/99595869
Magick++ 是著名开源图片处理库ImageMagick提供的 C++库。在命令行可以直接使用相关 ImageMagick 的命令直接完成上述任务。要是C++编程完成需要调用 Magick++ 的API。
#include <iostream> #include <Magick++.h>int main(int argc, char **argv) {Magick::InitializeMagick(*argv);Magick::Image image;try{image.read("./patternsBoard1.png"); // read an image from directoryimage.resolutionUnits(Magick::PixelsPerCentimeterResolution); // 设置分辨率单位为 像素/厘米image.density("120x120"); // 纵、横分辨率都是 120 px/cmimage.write("./patternsBoard3.pdf"); // 保存为pdf }catch(Magick::Exception &erro_){std::cout<< "Caught exception:" << erro_.what() <<std::endl;return 1;}return 0; }
与opencv的转换:
cv::Mat cvimage;cvimage = cv::imread("./patternsBoard1.png" ,cv::IMREAD_GRAYSCALE);Magick::Image image(cvimage.cols,cvimage.rows,"I",MagickCore::CharPixel, (char *)cvimage.data);