openCV基礎函數

來源:互聯網
上載者:User

cvLoadImage()
顧名思義,就是載入圖片的意思,它的使用方法為
IplImage* cvLoadImage("設定檔名稱",參數);
參數的部份可以參考命名規則的說明,回傳的訊息是IplImage資料結構,它的參數分類有

#define CV_LOAD_IMAGE_UNCHANGED -1原圖影像
#define CV_LOAD_IMAGE_GRAYSCALE 0灰階
#define CV_LOAD_IMAGE_COLOR 1彩色
#define CV_LOAD_IMAGE_ANYDEPTH 2任何彩度
#define CV_LOAD_IMAGE_ANYCOLOR 4任何彩色

原始影像如果是灰階圖的話會因為檔案格式的關係而不可能變成彩色,但彩色圖片卻可以任意變成灰階,參數的部份可以用大寫英文或數字來替代.

cvNamedWindow()
這個副程式,是給視窗化介面命名的副程式,用法如下
cvNamedWindow("視窗名稱",參數);
而它的參數實質上只有一個

#define CV_WINDOW_AUTOSIZE 1自動調整圖形大小

AUTOSIZE可以讓圖片便成原圖大小,也就是圖形維度不做調整,但是圖片太大很容易造成困擾,就如RainMan,維度為1200*1600,會造成圖片佔據了整個螢幕的版面.如果要微調就要用到cvResizeWindow()這個函式,但是,cvNamedWindow()不能設成1(CV_WINDOW_AUTOSIZE),務必將參數設為0或其他非1的數字.

cvMoveWindow()
移動GUI視窗到"螢幕座標"上的位置.當我們移動滑鼠時,實際上是在Windows作業系統底下的座標軸在變換,這個函式可以將做出來的GUI視窗以右上方為準移動到指定螢幕座標的地方.使用方法:
cvMoveWindow("視窗名稱",螢幕X軸數字,螢幕Y軸數字);

cvResizeWindow()
將視窗作縮放的動作,圖片將會等比例的變換,但cvNamedWindow()參數必須設為非1.
cvResizeWindow("視窗名稱",縮放寬度,縮放高度);

cvGetWindowHandle()
一個視窗所產生的ID,當我們創立一個視窗的時候,作業系統個隨機給予一個視窗ID,每次重新開啟這個ID都會不一樣,可以把它視為純數字,不過,通常都是用(void *)資料型態來設立,這邊就是用視窗名稱來找視窗ID
cvGetWindowHandle("視窗名稱");

cvGetWindowName()
用ID來反查視窗名稱.
cvGetWindowName(視窗ID);

cvShowImage()
顯視圖片.
cvShowImage("視窗名稱",IplImage資料結構或CvArr資料結構);

cvWaitKey()
鍵盤事件,秀出圖形必備,這邊如果有開啟cvShowImage()的話,就必須要用到cvWaitKey(),而不能用"stdlib.h"裡的system("pause")取代,cvWaitKey()是專門在在OpenCV專用的GUI介面底下等待鍵盤命令的,而不是在黑白環境下的命令提示字元,鍵盤事件有兩種,阻斷式(block)的跟非阻斷式(unblock)的可以在作業系統原理的相關書籍讀到,阻斷式的就是cvWaitKey(0),它會一直等待到鍵盤事件發生為止,另一種就是在裡面輸入大於零的數字cvWaitKey(10),它將會等到10毫秒後自動輸出-1,代表10毫秒內沒接收到鍵盤敲擊事件,因此,典型的副程式標記法為
cvWaitKey(數字);

cvDestroyWindow()
清除視窗記憶體
cvDestroyWindow("視窗名稱')

cvReleaseImage()
清除IplImage圖形資料結構記憶體
cvReleaseImage(IplImage資料結構名稱)

cvCreateTrackbar()
創立一個Trackbar在目標視窗上,起始值從0開始,而Trackbar指標開始的位置跟Trackbar最大值要自己設定,再給他一個可控制的事件名稱,此Trackbar事件可自由命名,但是務必要讓他輸入一個int型別的變數如:void xxx(int position).
cvCreateTrackbar("Trackbar名稱","目標視窗名稱",指標開始數值,Trackbar最大值,Trackbar事件副程式名稱);

cvGetTrackbarPos()
檢視Trackbar的位置,需要給它Trackbar的名稱,目標視窗名稱.
int cvGetTrackbarPos("Trackbar名稱","目標視窗名稱");

cvSetTrackbarPos()
重新設定Trackbar的位置,需要給它Trackbar的名稱,目標視窗名稱.
cvGetTrackbarPos("Trackbar名稱","目標視窗名稱",新的拉軸位置資料);
cvSize()
初始化CvSize資料結構,放置長跟寬的整數值
CvSize cvSize(寬的數值,高的數值);

cvCreateImage()
初始化IplImage資料結構,創造一個空白的圖片基本的格式,格式內容可參考命名規則,再給他通道數(二維陣列的數目).
cvCreateImage(CvSize資料結構,IPL_DEPTH_系列參數,通道數);

cvThreshold()
此為演算法功能之ㄧ ,跟門檻值相關的演算法搜集的副程式,第一個引數為輸入圖,第二個引數為計算結果的圖,再來是門檻最大值,二值化門檻值參數.
cvThreshold(原始圖形IplImage資料結構,計算後結果IplImage資料結構,門檻值,最大門檻值數值,CV_THRESH_BINARY);

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.