opencv中有幾個函式不懂是什麼意思

2021-05-20 17:56:39 字數 5062 閱讀 9570

1樓:

1、cvloadimage:將影象檔案載入至記憶體;

opencv中有幾個函式不懂是什麼意思

2樓:匿名使用者

1) iplimage* cvcreateimage( cvsize size, int depth, int channels );

cvcreateimage是opencv中的一個函式。opencv是intel公司支援的開放計算機視覺庫。

cvcreateimage:

建立頭並分配資料

iplimage* cvcreateimage( cvsize size, int depth, int channels );

引數說明:

size 影象寬、高.

depth 影象元素的位深度,可以是下面的其中之一:

ipl_depth_8u - 無符號8位整型

ipl_depth_8s - 有符號8位整型

ipl_depth_16u - 無符號16位整型

ipl_depth_16s - 有符號16位整型

ipl_depth_32s - 有符號32位整型

ipl_depth_32f - 單精度浮點數

ipl_depth_64f - 雙精度浮點數

channels:

每個元素(畫素)通道數.可以是 1, 2, 3 或 4.通道是交叉存取的,例如通常的彩色影象資料排列是:

b0 g0 r0 b1 g1 r1 ... 雖然通常 ipl 圖象格式可以存貯非交叉存取的影象,並且一些opencv 也能處理他, 但是這個函式只能建立交叉存取影象.

函式 cvcreateimage 建立頭並分配資料,這個函式是下列的縮寫型式:

header = cvcreateimageheader(size,depth,channels);

cvcreatedata(header);

2) iplimage* cvcloneimage( const iplimage* image );

在使用函式之前,不用記憶體,即不用。該函式會自己開一段記憶體,然後複製好image裡面的資料,然後把這段記憶體中的資料返回.

例如iplimage *src;

iplimage *dst;

dst = cvcloneimage(src);

就是直接把src這個影象複製給dst,不用給dst記憶體空間了,即不用寫dst = cvcreateimage(cvgetsize(src),8,3).

3)void cverode( const cvarr* src, cvarr* dst, iplconvkernel* element=null, int iterations=1 );

src輸入影象.

dst輸出影象.

element

用於腐蝕的結構元素。若為 null, 則使用 3×3 長方形的結構元素

iterations

腐蝕的次數

函式 cverode 對輸入影象使用指定的結構元素進行腐蝕,該結構元素決定每個具有最小值象素點的鄰域形狀:

dst=erode(src,element): dst(x,y)=min((x',y') in element))src(x+x',y+y')

函式可以是本地操作,不需另外開闢儲存空間的意思。腐蝕可以重複進行 (iterations) 次. 對彩色影象,每個彩色通道單獨處理。

createstructuringelementex 建立結構元素;releasestructuringelement 刪除結構元素。

4) void cvabsdiff( const cvarr* src1, const cvarr* src2, cvarr* dst );

opencv 中計算兩個陣列差的絕對值的函式。

void cvabsdiff( const cvarr* src1, const cvarr* src2, cvarr* dst );

src1

第一個原陣列

src2

第二個原陣列

dst輸出陣列

函式 cvabsdiff 計算兩個陣列差的絕對值

dst(i)c = abs(src1(i)c - src2(i)c).

所有陣列必須有相同的資料型別相同的大小(或roi大小)

5)void cvthreshold( const cvarr* src, cvarr* dst, double threshold, double max_value, int threshold_type );

cvthreshold是opencv庫中的一個函式

作用:函式 cvthreshold 對單通道陣列應用固定閾值操作。該函式的典型應用是對灰度影象進行閾值操作得到二值影象。

(cvcmps 也可以達到此目的) 或者是去掉噪聲,例如過濾很小或很大象素值的影象點。本函式支援的對影象取閾值的方法由 threshold_type 確定。

形式:void cvthreshold( const cvarr* src, cvarr* dst, double threshold, double max_value, int threshold_type );

src:原始陣列 (單通道 , 8-bit of 32-bit 浮點數)。dst:輸出陣列,必須與 src 的型別一致,或者為 8-bit。

threshold:閾值

max_value:使用 cv_thresh_binary 和 cv_thresh_binary_inv 的最大值。

threshold_type:閾值型別 threshold_type=cv_thresh_binary:

如果 src(x,y)>threshold ,dst(x,y) = max_value; 否則,des(x,y)=0;

threshold_type=cv_thresh_binary_inv:

如果 src(x,y)>threshold,dst(x,y) = 0; 否則,dst(x,y) = max_value.

threshold_typ

6)void cvdilate( const cvarr* src, cvarr* dst, iplconvkernel* element=null, int iterations=1 );

void cvdilate( const cvarr* src, cvarr* dst, iplconvkernel* element=null, int iterations=1 );

src輸入影象.

dst輸出影象.

element

結構元素。若為 null, 則使用預設的3×3 長方形,錨點在中間的結構元素,進行膨脹運算

iterations

膨脹的次數

函式 cvdilate 對輸入影象使用指定的結構元進行膨脹,該結構決定每個具有最大值象素點的鄰域形狀。

說明:使用任意結構元素膨脹影象,函式在呼叫中可以在輸入影象上直接進行操作,如採用如下方式呼叫:cvdilate (img1, img1);

膨脹可以重複進行 (iterations) 次. 對彩色影象,每個彩色通道單獨處理。

7) createstructuringelementex

cvcreatestructuringelementex

建立結構元素

iplconvkernel* cvcreatestructuringelementex( int cols, int rows, int anchor_x, int anchor_y,

int shape, int* values=null );

cols

結構元素的列數目

rows

結構元素的行數目

anchor_x

錨點的相對水平偏移量

anchor_y

錨點的相對垂直偏移量

shape

結構元素的形狀,可以是下列值:

cv_shape_rect, 長方形元素;

cv_shape_cross, 交錯元素 a cross-shaped element;

cv_shape_ellipse, 橢圓元素;

cv_shape_custom, 使用者自定義元素。這種情況下引數 values 定義了 mask,即象素的那個鄰域必須考慮。

values

指向結構元素的指標,它是一個平面陣列,表示對元素矩陣逐行掃描。(非零點表示該點屬於結構元)。如果指標為空,則表示平面陣列中的所有元素都是非零的,即結構元是一個長方形(該引數僅僅當shape引數是 cv_shape_custom 時才予以考慮)。

函式 cv createstructuringelementex 分配和填充結構 iplconvkernel, 它可作為形態操作中的結構元素。舉個例子比較好說清楚

比如一個圖

00000

01110

00000

用一個cvcreatestructuringelementex( 3,1,0 0,cv_shape_rect)的元素來腐蝕,則結果為

00000

01000

00000

而用一個cvcreatestructuringelementex( 3,1,1 0,cv_shape_rect)的元素來腐蝕,則結果為

00000

00100

00000

理解:cvcreatestructuringelementex( 3,1,0 0,cv_shape_rect)中的3,1表示要腐蝕的物件是一個3列1行的矩陣,如果該矩陣裡元素全為非零,則將其轉化為同樣大小隻包含一個非零元素,而該非零元素的位置是(0,0)。同理cvcreatestructuringelementex( 3,1,1 0,cv_shape_rect)中的3,1表示要腐蝕的物件是一個3列1行的矩陣,如果該矩陣裡元素全為非零,則將其轉化為同樣大小隻包含一個非零元素,而該非零元素的位置是(1,0)

opencv中有幾個函式不懂是什麼意思

3樓:

1、cvloadimage:將影象檔案載入至記憶體;

opencv中有幾個函式是什麼意思?

4樓:

1、cvloadimage:將影象檔案載入至記憶體;

2、cvnamedwindow:在螢幕上建立一個視窗;

為什麼說分段函式是函式而不是幾個函式

因為在定義域內每一個x都有唯一的一個y值與其對應,符合函式的條件 不懂再問,希望採納 函式分定義域連續與不連續兩種,分段函式是定義域不連續的函式。它符合一個函式的所有定義,但它不是一個初等函式。滿足成為函式的特性 函式表示每個輸入值對應唯一輸出值的一種對應關係。若先定義對映的概念,可以簡單定義函式為...

怎麼判斷函式是由哪幾個函式複合成的

有基來本初等函式複合而成源,也就是 說分解的時候必須分解到基本初等函式 比如sin2x 必須分解到sin a a 2x基本初等函式如下 基本初等函式包括以下6種 1 常值函式 也稱常數函式 y c 其中c 為常數 2 冪函式 y x a 其中a 為實常數 3 指數函式 y a x a 0,a 1 4...

我是一名初二學生,最近數學函式聽不懂,作業一塌糊塗。請問有什麼辦法

曾頭再來,從新去學。因為你是初次接觸函式,所以還有點不太適應,首先是培養自己的空間想象能力,這個可以為你以後學習空間向量一元或多元函式打下基礎,當然現在談有點早。還有就是要培養對數學的興趣,你可以在空閒的時候多看看書,也可以買一本輔導書多看看,掌握最基本的概念,慢慢的學會適應。如果不喜歡去問老師,那...