OpenCV學習筆記之IplImage

2021-06-07 06:05:25 字數 878 閱讀 2711

首先學習下各引數的用法,以後慢慢完善:

一 origin

在使用opencv顯示影象時會出現影象倒立的情況,iplimage的origin屬性有關係。origin為0表示頂左結構,即影象的原點是左上角,如果為1為左下角。

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

但是如果你自己建立了乙個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;//1

二 imagedata

imagedata指向儲存影象資料的一塊資料區。這塊資料區雖然是被宣告為char型別的,但是其也可以引用其他型別的資料。

例如宣告乙個影象,長寬為100,100,深度為32位的float型,灰度影象。

iplimage* img = cvcreateimage(cvsize(100,100), ipl_depth_32f, 1);

那麼我們可以通過除錯檢視實際的記憶體分配空間為40000 = 100*100*(32/8)。也就是說實際上是分配了10000個float型的記憶體區域。

opencv學習筆記之resize

前邊一篇說opencv中縮放僅有仿射變換一種,查證才知道是錯的,opencv中也有類似matlab中的imresize的函式,即是c 版的resize 當然還有影象金字塔方法 其原型為void resize inputarray src,outputarray dst,size dsize,doub...

OpenCV之Python學習筆記

直都在用python opencv做一些演算法的原型。本來想留下發布一些文章的,可是整理一下就有點無奈了,都是寫零散不成系統的小片段。現在看到一本國外的新書 opencv computer vision with python 於是就看一遍,順便把自己掌握的東西整合一下,寫成學習筆記了。更需要的朋友...

OpenCV學習筆記之七

iplimage cvloadimage const char filename,int flags cv load image color 第二個引數 flags 的選擇有三個,cv load image color 預設 1 以三通道彩色影象顯示。原圖若是gary,原來的某點畫素值,複製到bgr...