2013-05-13 54 views
1

我有一個通道圖像,並希望在一個QImage的適合QImage的格式

IplImage *img=cvCreateImage(cvSize(640, 480), IPL_DEPTH_8U, 1); 

,以顯示它知道了當從*的IplImage轉換成QImage的,我做了什麼是遵循:

uchar* img_d=(uchar*) img->imageData; 
    QImage img_direction((uchar*)img_d, img->width, img->height, QImage::Format_Mono); 

我不確定我設置的單聲道格式,即使是顯示的QImage也會被混淆!

對於B & W圖像的情況,適合的QImage格式是什麼?

回答

2

Qt的單聲道格式是每像素1位。

唯一的8位格式是QImage::Format_Indexed8,所以您需要創建一個256灰度的顏色表並將其傳遞給QImage::setColorTable

表可以填補這樣的:

QVector<QRgb> colorTable; 
for(int i=0; i<256; ++i) 
    colorTable << qRgb(i,i,i); 
+0

而如何建立顏色表??? – user2354422 2013-05-13 17:09:13

+1

@ user2354422我添加了代碼來創建該表。 – alexisdm 2013-05-13 21:29:48

+0

這非常有幫助。我upvoted ...不知道downvote。 – chappjc 2015-01-06 23:04:11