1. 程式人生 > >OpenCV 學習-函式、方法積累

OpenCV 學習-函式、方法積累

影象操作:

cv.imread(const String& filename,int flags)           #讀取圖片。引數1:圖片地址;引數2(預設正常讀取):0 或2 為灰度圖,1 為原圖

cv.NamedWindow( const char* name, int flags )         #建立視窗,但不寫也能show。引數1:視窗名字;引數2:視窗顯示方式(為0 或cv.WINDOW_NORMAL,可以改變視窗大小;不寫或

cv.WINDOW_AUTOSIZE則不可改變大小)

cv.imshow(const string& winname, InputArray mat)      #顯示圖片視窗。**引數1**:視窗名稱(若上文有NamedWindow() 函式,這個名稱要與它一樣);**引數2**:要顯示的圖片(如果視窗是用CV_WINDOW_AUTOSIZE(預設值)標誌建立的,那麼顯示影象原始大小。否則,將影象進行縮放以適合視窗)

waitKey(K)                                            #視窗顯示時間,單位:毫秒。K=0,一直顯示,直到按下數字鍵

destroyAllWindows()                                   #刪除建立的全部視窗,釋放資源

cv.imwrite(adress, name)                              #圖片另存為。引數一:圖片儲存地址;引數二:圖片儲存名稱

np.array(image)                                       #獲取影象畫素矩陣

cv.cvtColor(src, dst, int code)                       #實現色彩空間轉換

視訊操作:

cv.VideoCapture(0)                                    #開啟攝像頭。0代表的是裝置id,如果有多個攝像頭,可以設定其他數值;也可以是視訊檔案地址,呼叫視訊檔案,如果要播放要設定幀的迴圈

.read()                                               #讀取攝像頭。它能返回兩個引數,第一個引數是bool型的ret,其值為True或False,代表有沒有讀到圖片;第二個引數是frame,是當前擷取一幀的圖片

cv.flip(frame, 1)                                     #翻轉。 0:上下顛倒;大於0:水平顛倒;小於0:180旋轉

cv.getTickCount()                                     #返回自從某一時刻(比如計算機啟動)開始,計算機總共經過的tick的次數,其需要結合getTickFrequency()函式使用,getTickFrequency()返回的是CPU在一秒鐘內會發出的tick的次數

cv.inRange(src, lowerb, upperb)                       #輸出二值化影象。對輸入矩陣每一個畫素點進行檢測,當畫素點的值介於lower 和upperb 之間的賦予1,否則賦予0

Numpy

np.zeros([height, width, channels], type)             #建立一個影象,其畫素值全為0

np.ones([height, width, channels], type)              #建立一個影象,其畫素值全為1

cv.bitwise_not(image)                                 #二進位制資料進行“非”操作

.fill(x)                                              #將矩陣中填滿x 值

.reshape([height, width, channels])                   #改變矩陣維數

np.array([[a,b,c], [d,e,f], [g,h,i]], type)           #建立矩陣

畫素操作

cv.add(m1, m2)                                        #加

dst = cv.subtract(m1, m2)                             #減

dst = cv.multiply(m1, m2)                             #乘

dst = cv.divide(m1, m2)                               #除

cv.mean(m1)                                           #均值

cv.meanStdDev(m1)                                     #方差

cv.bitwise_and(m1, m2)                                #“與”

cv.bitwise_or(m1, m2)                                 #“或”

cv.bitwise_not(m1)                                    #“非”

cv.bitwise_xor(m1, m2)                                #“異或”

cv.addWeighted(image, c, blank, 1-c, b)               #計算兩個影象陣列的加權和(調節對比度和亮度)。image 為目標影象;c 為對比度;blank 為全黑等大影象;b 為亮度。所得圖片dst = image*c+blank*(1-c)+b