Hi All,

It's easy to convert any image to monochrome format by using QImage::convertToFormat like this:
Qt Code:
  1. pImage.convertToFormat(QImage::Format_Mono, Qt::MonoOnly|Qt::ThresholdDither|Qt::AvoidDither);
To copy to clipboard, switch view to plain text mode 
but convertToFormat always guessing that the value of conversion's threshold is 255 where in some cases we need to use another threshold's value. I checked out GIMP and I noticed that it uses an automatic method for guessing threshold's value (see the example below) so I'm wondering:

How I can convert images to monochrome format by using auto threshold's value just like GIMP conversion method?

Original


QImage conversion


Automatic GIMP conversion


P.S

I've wrote a stupid function for converting images to monochrome by using a specified threshold's value as following but I need to know how I can automatically specify threshold's value:
Qt Code:
  1. QImage getThresholdBW(QImage pImage, int threshold)
  2. {
  3. QImage result = pImage;
  4. result.fill(255);
  5. for(int x=0; x<pImage.width(); x++)
  6. for(int y=0; y<pImage.height(); y++)
  7. result.setPixel(x, y, qGray(pImage.pixel(x, y))>threshold?qRgb(255, 255, 255):qRgb(0, 0, 0));
  8.  
  9. return result;
  10. }
To copy to clipboard, switch view to plain text mode