cvnamedwindow(「original image」, cv_window_autosize);
畫視窗,名字為"original image"
cvshowimage(「original image」, imagegray);
(顯示影象的視窗,需要顯示的影象)
cvsub(roimage,imagegray0,subimagegray);
(被減數組,減陣列,結果矩陣)
cvthreshold(subimagegray,subimagebw,bwthreshold, 255, cv_thresh_binary );
對灰度影象進行閾值操作得到二值影象(輸入影象,輸出影象,閾值,最大值,閾值型別),如果subimagegray(x,y)大於bwthreshold,subimagebw(x,y)=255;如果subimagegray(x,y)小於bwthreshold,subimagebw(x,y)=0
cvmemstorage *stor = 0;//記憶體儲存器指標
stor = cvcreatememstorage(0);//建立記憶體儲存器,0為64k
cont = cvcreateseq(cv_seq_eltype_point, sizeof(cvseq), sizeof(cvpoint), stor);//建立序列,(cv_seq_eltype_ppoint–指向乙個點的指標:&(x,y);序列頭的大小;儲存元素的大小;記憶體儲存器,新增元素的時候,就會從記憶體儲存器申請空間;)
統一管理動態物件記憶體
—cv_retr_external:應用於外部輪廓檢測,忽略內部輪廓。
—cv_retr_list:檢測所有輪廓,不建立繼承(包含)關係,(內部輪廓和外輪廓的包含關係)。
—cv_retr_tree:檢測所有輪廓,建立繼承(包含)關係。用tree這種檢測方法的時候我們的hierarchy這個引數才是有意義的。
—cv_retr_ccomp:檢測所有輪廓,僅建立兩層繼承關係。外輪→頂層,第一層內輪廓。第一層內輪廓中包含的第一層內輪廓→頂層。外輪廓→第一層內輪廓→第二層內輪廓。
method:輪廓的表示方法
dst_contours = cvcreateimage( cvgetsize(roimage), roimage->depth, roimage->nchannels);
建立影象首位址,分配儲存空間
(影象尺寸,影象位深度,影象通道數)
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 - 雙精度浮點數
通道數為1,灰度影象;通道數為3,彩色影象
c++中的?
三目條件運算子
int max=a>b?a:b;//x?y:z x為真,則結果為y,x為假,澤加過為z
c++中的->
指標的指向運算子,和結構體一起使用
#includestruct st // 定義結構體
;void main()
cvthreshold( dst_contours, dst_contours ,0, 255, cv_thresh_binary_inv);
通過閾值,將影象轉化為二值影象
(原陣列,輸出陣列,閾值,最大值, threshold_type)
threshold_type=cv_thresh_binary:
輸出(x,y) = max_value, if 輸入(x,y)>threshold 0, otherwise.
threshold_type=cv_thresh_binary_inv:
輸出(x,y) = 0, if 輸入(x,y)>threshold; 輸出(x,y) = max_value, otherwise.
threshold_type=cv_thresh_trunc:
輸出(x,y) = threshold, if 輸入(x,y)>threshold; 輸出(x,y) = 輸入(x,y), otherwise.
threshold_type=cv_thresh_tozero:
輸出(x,y) = 輸入(x,y), if 輸入(x,y)>threshold ; 輸出(x,y) = 0, otherwise.
threshold_type=cv_thresh_tozero_inv:
輸出(x,y) = 0, if 輸入(x,y)>threshold ; 輸出(x,y) = 輸入(x,y), otherwise.
contour_area_tmp = fabs(cvcontourarea( cont, cv_whole_seq ));
取絕對值
cvcontourarea( cont, cv_whole_seq )
計算輪廓面積
(輪廓,這個輪廓的面積)
opencv常用函式彙總
scalar 是個short型vector。指定這個能夠使用指定的定製化值來初始化矩陣。當然,如果你需要更多通道數,你可以使用大寫的巨集並把通道數放在小括號中,如下所示 int sz 3 mat l 3,sz,cv 8uc 1 scalar all 0 randu 作用 返回均勻分布的隨機數,填入陣...
opencv的一些函式
計算物體的畫素或面積常需要用到計算矩陣中的非零元素個數,opencv中使用countnonzero 函式實現。bitwise and是對二進位制資料進行 與 操作,即對影象 灰度影象或彩色影象均可 每個畫素值進行二進位制 與 操作,1 1 1,1 0 0,0 1 0,0 0 0 bitwise or...
OpenCV一些函式
1.線性混合操作 beta 1.0 alpha addweighted src1 alpha src2 beta 0.0 dst 這是因為 addweighted 進行如下計算 這裡2.掩碼操作 濾波器在影象處理中的應用太廣泛了,因此opencv也有個用到了濾波器掩碼 某些場合也稱作核 的函式。不過...