0
我試圖得到極小圖像與Magick ++ API版本7:統計與Magick ++的ImageMagick 7.0.5-4 Q16 x86_64的問題
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
可以給我正確的價值。
我該如何解決這個問題?
EDIT 1
如果我
img.read("test" + Glib::ustring(argv[0]) + ".bmp");
stats = img.statistics();
std::cout << argv[0] << ":" << stats.channel(Magick::PixelChannel::GrayPixelChannel).minima() << std::endl;
我得到最小值的正確值(和它不在範圍0 - 1.0在ImageMagick的7)。這裏
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;
爲什麼不同:'convert rose:-colorspace Gray bmp: - |標識-verbose - | grep min' 分鐘:37(0.145098) – flc
由於數據總體不同。每次在內存中操作圖像或編碼時,統計值都會改變。在你的評論的例子中,你生成一個BMP 8位sRGB圖像,並觀察到一些精度損失。 – emcconville