QImage和IplImage轉換總結

2021-06-24 11:24:37 字數 1165 閱讀 9418

在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...