OPENCV函式雜談

2021-09-25 12:59:31 字數 983 閱讀 6826

並不是所有格式的mat型資料都能被使用儲存為,目前opencv主要只支援單通道和3通道的影象,並且此時要求其深度為8bit和16bit無符號(即cv_16u),所以其他一些資料型別是不支援的,比如說float型等。

convertto()函式負責轉換資料型別不同的mat,即可以將類似float型的mat轉換到imwrite()函式能夠接受的型別;

cvtcolor()函式是負責轉換不同通道的mat,因為該函式的第四個引數就可以設定目的mat資料的通道數(只是我們一般沒有用到它,一般情況下這個函式是用來進行色彩空間轉換的)。

也可以不用imwrite()函式來存資料,可以直接用通用的xml io介面函式將資料存在xml或者yxml中。

gamma校正是對輸入影象灰度值進行的非線性操作,使輸出影象灰度值與輸入影象灰度值呈指數關係。

人眼對外界光源的感光值與輸入光強不是呈線性關係,而是呈指數型關係。在低照度下,人眼更容易分辨出亮度的變化,隨著照度的增加,人眼不易分辨出亮度的變化。而攝像機感光與輸入光強呈線性關係。為方便人眼辨識影象,需要將攝像機採集的影象進行gamma校正。

normalize:該函式分為範圍歸一化與資料值歸一化

void cv::normalize(inputarray src,inputarray dst,double alpha=1,double beta=0,int norm_type=norm_l2,int dtype=-1,inputarry mark=noarray())

src:輸入陣列

dst: 輸出陣列,陣列的大小和原陣列一致

alpha: 1,用來規範值;2。規範範圍,並且是下限

beta: 只用來規範範圍並且是上限(不等於0)

norm_type: 歸一化選擇的數學公式型別

dtype: 歸一化選擇的數學模型

dtype:當為負,輸出在大小深度通道數都等於輸入,當為正,輸出只在深度與輸入不同,不同的地方有dtype決定

mark:掩碼。選擇感興趣區域,選定後只能對該區域進行操作。

建構函式雜談

建構函式是在例項化物件時自動呼叫的函式。它們必須與所屬的類同名,且不能有返回值。類或結構可能有多個接受不同引數的建構函式。建構函式使得我們可設定預設值 限制例項化以及編寫靈活且便於閱讀的 如果您沒有為物件提供建構函式,則預設情況下 c 將建立乙個建構函式,該建構函式例項化物件,並將成員變數設定為 d...

ReLU啟用函式雜談

在實現多層感知機 實現中使用了relu啟用函式 r el u x max x,0 relu x max x,0 relu x ma x x,0 形狀大概是這樣的 這裡根據幾個問題來進行回答解釋 為什麼要使用啟用函式呢?簡單來說啟用函式的作用就是將仿射函式進行非線性化,可以擬合出更多的情況。更詳細的解...

opencv 星空 opencv 數學函式

1.round floor ceil 捨入轉為整數 int cvround double value int cvfloor double value int cvceil double value 2.sqrt 平方根 invsqrt 平方根的倒數 cbrt 輸入值的立方根 float cvsqr...