第一次上課內容,真的很好玩
將鏡頭翻轉顯示出萬花筒的圖形!!!
2013年6月13日 星期四
HW01
CvCapture 是一個物件,與硬體做連接。
IplImage 是一個物件,用來影像處理。
初次接觸OpenCV,熟悉的是在devcpp的環境下來完成,download程式碼下來,將不懂的程式碼拿去Google。
難點在於對於cvFlip的使用,cvFlip有三個參數,第一個參數是影像的來源,第二個參數可以跟第一個一樣也可以寫NULL,第三個是調整旋轉的方向,有大於0,小於0,等於0三個選項,由此來達到萬花筒的效果。期待有更多好玩的東西出現。
HW01
這堂課學到不同的角度跟光線可以讓視訊慘生出不一樣的美麗!!!
以下是學到的一些內容:
1.CvCapture
CvCapture是一個Interface的資料結構,為一個資料結構的雛形,無任何的變數型別存在,由
cvCaptureFromCAM(0)來選定Webcam裝置,cvCaptureFromCAM(0)的0代表自動偵測視訊裝
置,如果有兩台以上的Webcam則就用連續兩個cvCaptureFromCAM(0)函式來擷取,接著,就用
while(true)的無窮回圈來捕捉連續影像的圖形畫面,cvQueryFrame()則用來擷取每秒顯示出來的
frame這裡由cvWaitKey(10)來控制擷取時間,每延遲10毫秒捕捉一次視訊畫面,cvWaitKey()為鍵
盤事件,每超過10毫秒則會回傳-1,因此,畫面會因cvWaitKey(10)而延遲10毫秒,接著由無窮回圈
來繼續播放,當鍵盤事件發生的時候則會跳出whlie的無窮回圈.接著就把CvCapture資料結構及
視窗介面資料結構做記憶體的釋放.
2. IplImage
IplImage結構來源於Intel的另外一個函數庫Intel Image Processing Library (IPL),該函數
庫主要是針對圖像處理。
cvCreateCameraCapture()選定視訊裝置編號,給視窗命名
對於兩個視訊裝置二擇一的寫法,cvCreateCameraCapture()是不支援的,如果要將裝置做二擇一
個設定,可以參考後面"cvcam.h"的相關設定.
cvCreateCameraCapture()
其實跟cvCaptureFromCAM()是一樣的,它被OpenCV定義成
#define cvCaptureFromCAM cvCreateCameraCapture
所以,當用cvCaptureFromCAM()會自動取代成cvCreateCameraCapture(),而在視訊裝置的使用
上也大有學問,一般視訊裝置是0是自動偵測,有兩台以上就用函式及它的裝置代號重複呼叫,而它
可以支援各種特殊裝置
cvNamedWindow()
這個副程式,是給視窗化介面命名的副程式,用法如下
cvNamedWindow("視窗名稱",參數);
而它的參數實質上只有一個
#define CV_WINDOW_AUTOSIZE 1 自動調整圖形大小
2013年6月6日 星期四
HW01
這是第一次接觸OpenCV, 雖然大部分還是以C為基礎來寫程式
但因為有了視訊可以作許多影像處理
這次的截圖都是透過視訊頭去照電腦螢幕而有似萬花筒的效果
非常的有趣也玩到很有心得=P
很期待以後的課程!!
CvCapture 是視頻獲取結構
被用來作為視頻獲取函數的一個參數
Structure for getting video from camera or AVI file
IplImage
IplImage類型都可以代表和顯示圖像。而CvMat和IplImage類型更側重於“圖像”,openCV對其中的圖像操作(縮放、單通道提取、圖像閾值操作等)進行了優化。
index
要使用的攝像頭索引。如果只有一個攝像頭或者用哪個攝像頭也無所謂,那使用參數-1應該便可以。
函數cvCreateCameraCapture給從攝像頭的視頻流分配和初始化CvCapture結構。目前在Windows下可使用兩種介面:Video for Windows(VFW)和Matrox Imaging Library(MIL); Linux下也有兩種介面:V4L和FireWire(IEEE1394)。
釋放這個結構,使用函數cvReleaseCapture。
2013年3月14日 星期四
2013年2月28日 星期四
HW01
第一次的作業是要顯示四個視窗,
每一個視窗個自做鏡像,
形成萬花筒的效果。
一開始用產生四個視窗
cvNamedWindow("Webcam",1); //Webcam是視窗名稱
然後用
cvShowImage("Webcam", frame); //frame是圖像資料名稱
把圖像資料傳遞到視窗
每一個視窗的倒轉是使用
cvFlip(frame,0,1);
來轉換圖像資料的方向
第三項的1代表是→左右倒轉
0代表是→上下倒轉
最後要在while後面使用
cvWaitKey(20); // 延遲 20/1000秒
心得:
第一次上課,
對很多地方都不太熟悉,
但是後來認真聽老師講解,
與同學互相討論,
馬上就能夠上手,
而且這次的題目還蠻有趣的,
希望以後能學到更多更專業更有趣的內容。
每一個視窗個自做鏡像,
形成萬花筒的效果。
一開始用產生四個視窗
cvNamedWindow("Webcam",1); //Webcam是視窗名稱
然後用
cvShowImage("Webcam", frame); //frame是圖像資料名稱
把圖像資料傳遞到視窗
每一個視窗的倒轉是使用
cvFlip(frame,0,1);
來轉換圖像資料的方向
第三項的1代表是→左右倒轉
0代表是→上下倒轉
最後要在while後面使用
cvWaitKey(20); // 延遲 20/1000秒
心得:
第一次上課,
對很多地方都不太熟悉,
但是後來認真聽老師講解,
與同學互相討論,
馬上就能夠上手,
而且這次的題目還蠻有趣的,
希望以後能學到更多更專業更有趣的內容。
HW01
*CvCapture: 透過Camera和電腦連結,捕捉影像
*IplImage: 處理視訊影像的一個函式庫
心得:第一次上視訊還不太清楚大概要上什麼,直到學會cvFlip翻轉上下左右水平,和用程式碼叫出Camera等.......這些好玩的技巧~~~
HW01
第一次上這堂課,老師要我們先理解程式碼的概念及用法是什麼,所以我就上網查了一下。
1)CvCapture 可以理解成,電腦和攝影機的連接。
2)IplImage 把連接過來的攝影機的影像處理成圖片放到視窗上。
第一次使用OpenCV做視訊的處理,運用cvFlip視訊的反轉做出萬花筒的效果,當cvFlip(x,y,z)的z=0的時候,會做x軸的對稱反轉,z>0的時候會做y軸的對稱反轉,z<0時會做x軸和y軸的反轉。
2013年2月27日 星期三
2013年2月26日 星期二
Hw01
不知道為什麼截圖的時候好像出現了一些小問題,請自動忽視上面那一排
這次是一個新的技術,我們這一排很陶醉在把鏡頭對著螢幕反光後的花紋,
這次是一個新的技術,我們這一排很陶醉在把鏡頭對著螢幕反光後的花紋,
真的很美很漂亮。
但一開始要讓程式運作就花了我們很大的功夫,還好有助教的幫忙。
可以讓視窗翻轉的指令-
cvFlip(來源,目的,0或1或-1);
0是水平翻轉,1是垂直翻轉,-1是水平+垂直翻轉。
只要水平-垂直-水平,就可以四種角度都有了。
cvWaitKey(20);
這個是類似wait的程式碼,讓程式停多久之後會繼續抓新的資料。
這個是類似wait的程式碼,讓程式停多久之後會繼續抓新的資料。
2013年2月25日 星期一
HW01
連用2個視窗都有問題
之後我就試試看把視窗的名子改掉就成功了
剩下就是要與x,y軸為基準最對稱的問題
我想到程式是用一行一行跑就想說
先顯示一個視窗 然後做對稱
就成功了
今天這堂課就是讓我們熱熱身的一樣
2013年2月24日 星期日
HW01
心得:
今天學到用 cvNamedWindow
cvShowImage
cvFlip
用cvFlip垂直水平旋轉,沒想到視訊是一個可以做出特別特效,以前都會直接用photoshop修圖,現在可以直接寫程式表現出來!!
名詞解釋:
CvCapture:是一個保存圖像捕獲所需的資訊的結構體。
IplImage:由於OpenCV主要針對的是電腦視覺方面的處理,因此在函式程式庫中,最重要的結構體是IplImage結構。IplImage結構來源於Intel的另外一個函式程式庫Intel Image Processing Library (IPL),該函式程式庫主要是針對影像處理。
cvCreateCameraCapture:選定視訊裝置編號,給視窗命名
cvNamedWindow:視窗化介面命名的副程式
cvQueryFrame:從攝像頭或者文件中抓取並返回一幀
cvShowImage:顯視圖片
cvWaitKey:鍵盤事件,秀出圖形必備
cvReleaseCapture:清除IplImage圖形資料結構記憶體
cvDestroyWindow:清除視窗記憶體
今天學到用 cvNamedWindow
cvShowImage
cvFlip
用cvFlip垂直水平旋轉,沒想到視訊是一個可以做出特別特效,以前都會直接用photoshop修圖,現在可以直接寫程式表現出來!!
名詞解釋:
CvCapture:是一個保存圖像捕獲所需的資訊的結構體。
IplImage:由於OpenCV主要針對的是電腦視覺方面的處理,因此在函式程式庫中,最重要的結構體是IplImage結構。IplImage結構來源於Intel的另外一個函式程式庫Intel Image Processing Library (IPL),該函式程式庫主要是針對影像處理。
cvCreateCameraCapture:選定視訊裝置編號,給視窗命名
cvNamedWindow:視窗化介面命名的副程式
cvQueryFrame:從攝像頭或者文件中抓取並返回一幀
cvShowImage:顯視圖片
cvWaitKey:鍵盤事件,秀出圖形必備
cvReleaseCapture:清除IplImage圖形資料結構記憶體
cvDestroyWindow:清除視窗記憶體
2013年2月22日 星期五
HW01
CvCapture
一個獲取視頻的抽象接口結構。你可以理解為它能連接攝像頭,然後你想讓攝像頭做什麼,都要用函數調用,它作為參數起到控製攝像頭的作用
IplImage
由於OpenCV主要針對的是計算機視覺方面的處理,因此在函數庫中,最重要的結構體是IplImage結構。 IplImage結構來源於Intel的另外一個函數庫Intel Image Processing Library (IPL),該函數庫主要是針對圖像處理。
這一次的作業主要是要使用cvFlip將一個影像分別產生左右顛倒上下顛倒的四個影像。
首先要先產生4個影像視窗
我的做法是增加名稱Webcam1、 Webcam2、 Webcam3並寫在cvNamedWindow("Webcam",1);下面
像是
cvNamedWindow("Webcam",1);
cvNamedWindow("Webcam1",1);
cvNamedWindow("Webcam2",1);
cvNamedWindow("Webcam3",1);
接著使用cvFlip在來源參數上寫上frame,第二個參數可以寫來源參數或NULL,翻轉數我只用到等於1左右顛倒等於0上下顛倒
像是cvFlip(frame,NULL ,1);表示左右顛倒
我寫了三個cvFlip得到以上的結果
訂閱:
文章 (Atom)








.png)
.png)
.png)











