Este semestre estou cursando uma matéria que se chama Processamento de Imagens Digitais na PUC-MG e, diga-se de passagem, estou gostando muito da matéria. Recebemos então nosso primeiro trabalho prático que consiste em 3 passos, sendo o que primeiro irá gerar a versão em escala de cinza de uma imagem. Considerei esta a oportunidade perfeita para aprender a trabalhar com Qt.
Como o trabalho necessitava de uma interface gráfica (exigência do professor), comecei com o Qt Designer. O programa é realmente muito bom e fácil de mexer! Por usar caixas de ferramentas flutuantes, recomendo o uso de uma área de trabalho somente para o programa.
O segundo passo foi escrever o comportamento da interface, ou melhor, o trabalho de fato. Como este não é um tutorial de Qt vou pular direto para a manipulação da imagem. Escrevi então o seguinte código para deixar a imagem em escala de cinza utilizando a QImage:
void pidMain::generateGrayScale() { // ocultei o código original pois se trata de recuperar o objeto QImage e nada mais QImage *original = getImage(); QImage *gray = new QImage(original->width(), original->height(), QImage::Format_RGB32); QRgb grayPix; QColor *curPix; int bright; for (int i =0; i < gray->width(); i++) for (int j = 0; j < gray->height(); j++) { curPix= &QColor::fromRgba(original->pixel(i, j)); bright = qRound(0.3 * curPix->red() + 0.5 * curPix->green() + 0.2 * curPix->blue()); grayPix = qRgb(bright, bright, bright); gray->setPixel(i, j, grayPix); } // também ocultei o código original aqui. Agora temos uma imagem em escala de cinza no ponteiro "gray" }
Espero que este código seja útil a alguém! Caso queiram opinar, melhorar, estragar ou qualquer coisa, o código para alteração está aqui!
Abraços!






Fatal error: Call to undefined function gtcn_comment_numbering() in /home/.garaged/milkit/tas/wp-content/themes/tas/functions.php on line 23