anjinkristou

Convert IplImage to QImage

May 3rd, 2013
178
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. QImage IplImageToQImage(const IplImage *iplImage)
  2. {
  3.     // Local variables
  4.     int height = iplImage->height;
  5.     int width = iplImage->width;
  6.     // PIXEL DEPTH=8-bits unsigned, NO. OF CHANNELS=1
  7.     if(iplImage->depth == IPL_DEPTH_8U && iplImage->nChannels == 1)
  8.     {
  9.         // Set the color table (used to translate colour indexes to qRgb values)
  10.         QVector<QRgb> colorTable;
  11.         for (int i=0; i<256; i++)
  12.             colorTable.push_back(qRgb(i,i,i));
  13.         // Copy input IplImage
  14.         const uchar *qImageBuffer = (const uchar*)iplImage->imageData;
  15.         // Create QImage with same dimensions as input IplImage
  16.         QImage img(qImageBuffer, width, height, QImage::Format_Indexed8);
  17.         img.setColorTable(colorTable);
  18.         return img;
  19.     }
  20.     // PIXEL DEPTH=8-bits unsigned, NO. OF CHANNELS=3
  21.     else if(iplImage->depth == IPL_DEPTH_8U && iplImage->nChannels == 3)
  22.     {
  23.         // Copy input IplImage
  24.         const uchar *qImageBuffer = (const uchar*)iplImage->imageData;
  25.         // Create QImage with same dimensions as input IplImage
  26.         QImage img(qImageBuffer, width, height, QImage::Format_RGB888);
  27.         return img.rgbSwapped();
  28.     }
  29.     else
  30.     {
  31.         qDebug() << "ERROR: IplImage could not be converted to QImage.";
  32.         return QImage();
  33.     }
  34. } // IplImageToQImage()
Advertisement
Add Comment
Please, Sign In to add comment