opencv的一些函式

2021-09-17 22:40:06 字數 2194 閱讀 8986

計算物體的畫素或面積常需要用到計算矩陣中的非零元素個數,opencv中使用countnonzero()函式實現。

bitwise_and是對二進位制資料進行「與」操作,即對影象(灰度影象或彩色影象均可)每個畫素值進行二進位制「與」操作,1&1=1,1&0=0,0&1=0,0&0=0

bitwise_or是對二進位制資料進行「或」操作,即對影象(灰度影象或彩色影象均可)每個畫素值進行二進位制「或」操作,1|1=1,1|0=0,0|1=0,0|0=0

bitwise_xor是對二進位制資料進行「異或」操作,即對影象(灰度影象或彩色影象均可)每個畫素值進行二進位制「異或」操作

bitwise_not是對二進位制資料進行「非」操作,即對影象(灰度影象或彩色影象均可)每個畫素值進行二進位制「非」操作

mat矩陣mul——a.mul(b)

opencv中mul會計算兩個mat矩陣對應位的乘積,所以要求參與運算的矩陣a的行列和b的行列數一致。計算結果是跟a或b行列數一致的乙個mat矩陣。

t()轉置矩陣。

int checkvector(int elemchannels, int depth=-1, bool requirecontinuous=true) const;

函式的功能是: 當mat的channels,depth,和連續性 滿足checkvector的引數內容時,

返回(int)(total()*channels()/_elemchannels), 否則返回-1;

returns n if the matrix is 1-channel (n x ptdim) or ptdim-channel (1 x n) or (n x 1); negative number otherwise.

c++: mat mat::reshape(int cn, int rows=0) const

cn: 表示通道數(channels), 如果設為0,則表示保持通道數不變,否則則變為設定的通道數。

rows: 表示矩陣行數。 如果設為0,則表示保持原有的行數不變,否則則變為設定的行數。

void convertto( outputarray m, int rtype, double alpha=1, double beta=0 ) const;

m – 目標矩陣。如果m在運算前沒有合適的尺寸或型別,將被重新分配。

rtype – 目標矩陣的型別。因為目標矩陣的通道數與源矩陣一樣,所以rtype也可以看做是目標矩陣的位深度。如果rtype為負值,目標矩陣和源矩陣將使用同樣的型別。

alpha – 尺度變換因子(可選)。

beta – 附加到尺度變換後的值上的偏移量(可選)。

將元素新增到矩陣的底部。(在為mat增加一行的時候,用到push_back)

表示了矩陣中元素的型別以及矩陣的通道個數,它是一系列的預定義的常量,其命名規則為cv_(位數)+(資料型別)+(通道數)。

#define cv_8u 0

#define cv_8s 1

#define cv_16u 2

#define cv_16s 3

#define cv_32s 4

#define cv_32f 5

#define cv_64f 6

#define cv_usrtype1 7

建立乙個單位陣

矩陣是個空引數,或者很多**裡都用cv::mat()作為空參

只能作為函式的形參引數使用,不要試圖宣告乙個inputarray型別的變數。

為矩陣分配空間

檢測輸出的矩陣是否需要被計算

求行列式

scalar是將影象設定成單一灰度和顏色

更改矩陣的行數。

c++: void mat::resize(size_t sz)

c++: void mat::resize(size_t sz, const scalar& s)

引數sz –新的行數。

s –分配給新新增的元素的值。

該方法更改矩陣的行數。如果矩陣重新分配,第一最少(mat::rows,sz) 行數要保留下來。

保留一定數量的行的空間。

c++: void mat::reserve(size_t sz)

引數sz –的行數。

該方法sz行儲存空間。如果矩陣已經有足夠的空間來儲存sz行,沒有任何異常發生。如果矩陣重新分配,保留前(mat::rows) 行。

影象的複製

src.copyto(dst)

影象的複製

src.clone()

OpenCV一些函式

1.線性混合操作 beta 1.0 alpha addweighted src1 alpha src2 beta 0.0 dst 這是因為 addweighted 進行如下計算 這裡2.掩碼操作 濾波器在影象處理中的應用太廣泛了,因此opencv也有個用到了濾波器掩碼 某些場合也稱作核 的函式。不過...

openCV中的一些函式

把scr的元素與常量value相加放到dst裡。如果mask沒有被設為null,那麼mask中非零元素指定的dst元素值在函式執行後不變。void cvadds const cvarr scr,cvscalar value,cvarr dst,const cvarr mask null 這個 cvs...

opencv中一些功能函式

int floodfill inputoutputarray image,point seedpoint,scalar newval,rect rc 0,scalar lodiff scalar scalar updiff scalar int flags 4 int floodfill input...