1. 程式人生 > >opencv造成影象顛倒的原因

opencv造成影象顛倒的原因

使用opencv顯示影象時會出現影象倒立的情況,IplImage的origin屬性有關係。

origin為0表示頂左結構,即影象的原點是左上角,

如果為1為左下角。

一般從硬碟讀入的圖片或者通過cvCreateImage方法建立的IplImage圖片預設的origin為0,即顯示的時候都是正的。

而由攝像頭或者視訊檔案獲取的幀影象origin為1,此時顯示的時候掃描順序是從下到上,顯示也是正的

opencv顯示的時候是根據origin的值顯示的,如果origin=1,則從下到上顯示,否則反之)。

但是如果你自己建立了一個IplImage格式的影象img,且從幀影象中copy或者擷取一部分割槽域進行顯示的時候就會出現倒立情況。

這是因為cvCreateImage方法得到的img的origin是0,而幀影象的origin為1,

它會將幀影象的第i行賦值給img的第height-i行,因此就出現了倒立.解決辦法是:在建立之後將origin調整為與幀影象的origin一致即可。

IplImage* face=cvCreateImage(cvSize(width,height),copy_Frame->depth,copy_Frame->nChannels);

//因為IplImage的origin=0,所以要先將face->origin改為1
        face->origin=copy_Frame->origin;