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...
我是一名初二學生,最近數學函式聽不懂,作業一塌糊塗。請問有什麼辦法
曾頭再來,從新去學。因為你是初次接觸函式,所以還有點不太適應,首先是培養自己的空間想象能力,這個可以為你以後學習空間向量一元或多元函式打下基礎,當然現在談有點早。還有就是要培養對數學的興趣,你可以在空閒的時候多看看書,也可以買一本輔導書多看看,掌握最基本的概念,慢慢的學會適應。如果不喜歡去問老師,那...