void MainWindow::openImage()
{
//declare FileOpName as the choosen opened file name
FileOpName = QFileDialog::getOpenFileName(this,
tr("Open File"), QDir::currentPath(),tr("Image Files (*.png *.jpg *.jpeg *.bmp)"));
//Check if FileOpName exist or not
if (!FileOpName.isEmpty()) {
QImage image(FileOpName);
if (image.isNull()) {
QMessageBox::information(this, tr("Face Recognition"),
tr("Cannot load %1.").arg(FileOpName));
return;
}
}
//function to load the image whenever fName is not empty
if( FileOpName.size() )
{
IplImage *image = cvLoadImage(FileOpName.toAscii().data());
IplImage *gray_image = cvCreateImage(cvGetSize(image), IPL_DEPTH_8U, 1);
cvCvtColor(image, gray_image, CV_RGB2GRAY);
QImage *q_image = new QImage((uchar*)gray_image->imageData,
gray_image->width,
gray_image->height,
QImage::Format_RGB888
);
ui->label->setPixmap(QPixmap::fromImage(q_image->rgbSwapped()));
}
}
Изображение криво отображается. Если выводить так-же image, то всё нормально. Значит проблема в cvCvtColor скорее всего. Но её используют везде так, как у меня. Пробывал менять CV_RGB2GRAY на CV_BGR2GRAY - не помогло.
Скриншот http://rghost.net/53819481/image.png