在arm中做影象處理,因為不支援gtk,一般都會用到qt來實現顯示功能,所以不可避免的要涉及到qimage和iplimage兩種影象格式之間的轉換,下面總結一下轉換的方法。
(下面格式轉換的**都是網友寫的,我這裡只是歸納修改了一下)
方法1
qimage *iplimagetoqimage(const iplimage *img)
這裡要注意的是,iplimage每個畫素點儲存的格式為bgr,而qimage每個畫素點儲存的格式為rgb,所以在轉換之前需要先使用opencv提供的cvcvtcolor函式將bgr影象變為rgb影象。還有就是qimage最後乙個引數qimage::format_rgb888,這是指色彩空間r,g,b三個通道分別用8位來表示,如果是灰度圖,則引數為qimage::format_indexed8。
例如:
qimage *iplimagetoqimage(const iplimage *img)
方法2
qimage *iplimagetoqimage(*img)
else if( 1 == img->nchannels )
qmg->setpixel( j, i, qrgb(r,g,b) );}}
return qmg;
}
這裡要注意的是qmg->setpixel( j, i, qrgb(r,g,b) );括號裡面是(j,i);而不是(i,j)。我還沒弄明白為什麼這裡要調換一下i,j的順序,希望知道的朋友指點一下。
方法1
iplimage *qimagetoiplimage(const qimage * qimage)
}return iplimagebuffer;
}
方法2
iplimage *qimagetoiplimage(const qimage * qimage)
}return iplimagebuffer;
}
這兩種方法其實都是一樣的,只是表達形式有點不同,還有就是乙個是生成rgb格式影象,乙個是生成bgr格式的影象。 QImage和IplImage之間轉換
環境 qt5.6 opencv3.2 imx6q 工程 道路線檢測 在嵌入式系統中實現qt和opencv的處理,最基礎的就是qimage和iplimage之間的轉換。這樣兩者就可以進行一起使用影象資料,從而達到利用qt顯示和利用opencv處理的功能。下面我將貼出 qimage iplimage c...
QImage 和 IplImage 之間轉換問題
qimage和iplimage之間轉換問題 常用方法 這個對於iplimage向qimage轉換是乙個非常重要的功能 因為我們可以用下面的語句直接從iplimage構造qimage,避免重複複製資料.彩色影象 灰度影象 iplimage pimg2 cvcreateimage cvgetsize p...
關於QImage和IplImage之間轉換的實現
在嵌入式系統中實現qt和opencv的處理,最基礎的就是qimage和iplimage之間的轉換。這樣兩者就可以進行一起使用影象資料,從而達到利用qt顯示和利用opencv處理的功能。下面我將貼出 qimage iplimage cpp view plain copy qimage iplimage...