[Qt-interest] Enhanced monochrome conversion

Andre Somers andre at familiesomers.nl
Thu Nov 26 11:47:08 CET 2009


M. Bashir Al-Noimi wrote:
>
> Hi All,
>
> It's easy to convert any image to monochrome format by using 
> QImage::convertToFormat like this:
>
> pImage.convertToFormat(QImage::Format_Mono, Qt::MonoOnly|Qt::ThresholdDither|Qt::AvoidDither);
>
> 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?*
>
> *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:
>
> QImage getThresholdBW(QImage pImage, int threshold)
> {
>     QImage result = pImage;
>     result.fill(255);
>     for(int x=0; x<pImage.width(); x++)
>         for(int y=0; y<pImage.height(); y++)
>             result.setPixel(x, y, qGray(pImage.pixel(x, y))>threshold?qRgb(255, 255, 255):qRgb(0, 0, 0));
>
>     return result;
> }
Hi, interesting problem, but I'd say there is a relatively straitforward 
way to get an answer: read the GIMP sourcecode and see how it does this! 
Of course, I have no idea if the source of the GIMP is actually 
readable, I never tried.

André
 (use the Force, read the Source!)






More information about the Qt-interest-old mailing list