Russian Qt Forum

Qt => Мультимедиа => Тема начата: deathklaat от Октябрь 09, 2009, 17:07



Название: Получение черно-белого изображения
Отправлено: deathklaat от Октябрь 09, 2009, 17:07
Добрый день. Имеется изображение в QImage, подскажите, пожалуйста, как сделать его черно-белым.
Qt 4.5.0 C++


Название: Re: Получение черно-белого изображения
Отправлено: Alex Custov от Октябрь 09, 2009, 17:11
QImage::convertToFormat(QImage::Format_Mono) ?


Название: Re: Получение черно-белого изображения
Отправлено: ufna от Октябрь 09, 2009, 18:40
Если топорно, то можно так:

Код
C++ (Qt)
   QPixmap alpha = m_openedPix.alphaChannel();
   QImage img = m_openedPix.toImage();
 
   for( int w = 0; w < img.rect().right(); w++ ) {
       for( int h = 0; h < img.rect().bottom(); h++ ) {
           QColor col( img.pixel(w,h) );
           col.setHsv(col.hue(), 0, col.value(), col.alpha());
           img.setPixel(w,h,col.rgb());
       }
   }
 
   m_openedPix = QPixmap::fromImage( img );
   m_openedPix.setAlphaChannel( alpha );


Название: Re: Получение черно-белого изображения
Отправлено: Igors от Октябрь 09, 2009, 19:25
Если топорно, то можно так:
...
            col.setHsv(col.hue(), 0, col.value(), col.alpha());
Стандартная формула для перевода в greyscale (Photoshop etc.)

greyscale = red * 0.299f + green * 0.587f + blue * 0.114f;

(коэффициенты "сильно не равны" :))


Название: Re: Получение черно-белого изображения
Отправлено: deathklaat от Октябрь 10, 2009, 17:17
спасибо больше. топорный метод работает :)