【发布时间】:2017-04-11 22:01:15
【问题描述】:
我正在尝试使用 Magick++ API 版本 7 获得图像中的最小值:
img.type(Magick::GrayscaleType);
auto stats = img.statistics();
std::cout << argv[0] << ":" << stats.channel(Magick::PixelChannel::GrayPixelChannel ).minima() << std::endl;
img.write("test" + Glib::ustring(argv[0]) + ".bmp");
对于几张图像,我得到相同的 minima 值和错误值 > 1.0。
在书面图像上运行 identify -verbose 给了我正确的值。
我该如何解决这个问题?
编辑 1
如果我这样做了
img.read("test" + Glib::ustring(argv[0]) + ".bmp");
stats = img.statistics();
std::cout << argv[0] << ":" << stats.channel(Magick::PixelChannel::GrayPixelChannel ).minima() << std::endl;
我得到了正确的最小值(在 ImageMagick 7 中它不在 0 - 1.0 的范围内)。
这里的img是
的结果img.composite(mask, 0, 0, Magick::OverCompositeOp);
掩码在哪里
Magick::Image newmask(Magick::Geometry(width,height),Magick::Color("white"));
newmask.strokeColor("black");
newmask.fillColor("black");
newmask.draw( Magick::DrawableCircle(xc,yc, xc,yc+rc-10) );
newmask.transparent(Magick::Color("black"));
newmask.depth(8);
mask = newmask;
【问题讨论】:
标签: c++ imagemagick magick++