2013年6月20日 星期四
課程回顧
1. What is your favorite homework?
hw05 Color Selection and Virtual Mouse
顏色偵測及虛擬滑鼠,在視訊上這兩個可以做很多的應用,而且很有趣
2. What did you learn in this course?
以前以為視訊鏡頭只能跟別人視訊外沒別的應用,而在這堂課學到了如何透過視訊鏡頭能做哪些應用,這是以前沒想過的。
還有專案展出能夠實際的去跟別的同學互動,參觀、去玩別人的專案很有趣,也能知道其他同學的創意,獲益良多!
3. What did you change after this course?
這堂課自主學習性很高,能學到的東西很有趣,也是大學所有課程內上課不會沒精神的幾堂課之一。
2013年6月13日 星期四
上機考
1. 詳細列出bug:
皇冠無法更換
2.詳細列出解決bug的流程與方法:
因為是用膚色來偵測動作,在選皇冠可能會因為有照到臉部,所以選擇皇冠沒有那麼的明顯感應到
皇冠沒有戴在頭上移動其實就是把上次偵測到人臉面具的作業面具的Y座標降低一些直到戴在人的頭上
3.心得:
上機考如老師說的不是要考倒我們,而是看我們還有哪些地方是不懂、不會的,藉此找出自己的問題,然後請教會的同學,這樣才會進步。
這堂課真的能學到很多,也能從每次的作業專案中找到一些樂趣!!
2013年5月16日 星期四
2013年5月9日 星期四
2013年5月2日 星期四
HW08
今天老師教了X-Projection and Y-Projection
要計算出白色點有幾個來畫出X跟Y的Projection
這次作業是做雙人Jumpping game,跳得很high很累。
但是還是有一些小問題在。
2013年4月18日 星期四
HW06
今天老師上課教了Background Subtraction
第一種是 Background = Frame 0
就是讓新產生的影像減去原始影像Frame0
TH=50
第二種是 Background = Frame n-1
讓新產生的影像減去上一張產生的影像
TH=50
第一種是 Background = Frame 0
就是讓新產生的影像減去原始影像Frame0
TH=50
第二種是 Background = Frame n-1
讓新產生的影像減去上一張產生的影像
TH=50
可以更動TH值讓影像更清楚
TH=10
TH=90
當然一開始Frame0最好要有乾淨的背景(全黑色或是全白色),之後成像才會清楚,也要考慮到光線跟對焦...等環境。
2013年4月6日 星期六
HW04
這次作業是要讓自己融入背景
我偵測的顏色是黑色
但是因為光線的問題 所以會有一些誤差
最好就是背景的顏色跟衣服的顏色都要一致 效果才會比較好
還蠻有趣的應用
第二個是要做個會移動的logo
選了一張蚊子的圖 作勢要打它
第二個是要做個會移動的logo
選了一張蚊子的圖 作勢要打它
2013年3月21日 星期四
HW05
今天老師教的是如何從視訊鏡頭中去擷取顏色,並且用此顏色來當虛擬滑鼠,可以在視訊上面畫畫或是移動圖片
但是因為光與影的關係讓整個顏色判斷上有誤差,所以效果不是很好
寫字出來感覺是小畫家的噴漆功能,要噴很久才能有比較像樣的字
像這樣:
不過剛好今天穿的衣服上面有字可以利用一下就變這樣:
偵測紅色:
偵測灰色:
在透過視訊時背景乾淨一點比較好,還有就是顏色偵測的區塊小一點,你的實體顏色面積也小一點會比較好作畫。
這次的應用蠻有趣的未來或許可以加入聲音來做期中專題。
2013年3月7日 星期四
HW03
今天學到的東西比較需要理解,記憶體存放的位置、X、Y、ptr1、ptr2,花了不少時間了解,有些地方還是不太懂。
最後的作業是要在視訊鏡頭上加個相框,是個有趣的互動,往後可以自由的加上自己喜歡的相框,不會被相機軟體只有簡單的幾款相框給限制住。
if( ptr1[3*(x)]<240 && ptr1[3*(x+1)]<240 && ptr1[3*(x+2)]<240)
加個判斷式可以讓白色背景的部分去背
2013年2月28日 星期四
HW02
這次作業做的是數位影像處理
包括了 原圖,灰階,黑白,邊緣
還有將圖像放大縮小
700*700
cvResize(原圖,放大圖,CV_INTER_NN);
因為產生的影像很多,而且是動態的影像,所以會佔用到很多電腦的記憶體,程式執行太久就會當掉,所以不僅要將程式碼寫對位置,也要去計算記憶體的空間。
如果是自己用程式碼寫出這些數位影像處理要寫很多行而且邏輯計算也要清楚,但是OpenCV提供的函式很方便的能夠做到這些效果。
2013年2月21日 星期四
HW01
不是第一次用視訊,但是是第一次用程式寫視訊,做出萬花筒的效果,萬花筒其實就是多做出幾個視窗藉由讓不同的視窗水平垂直顛倒,這堂課能藉由視訊鏡頭做出很多效果,未來也非常期待能學到更多
CvCapture:
CvCapture是一個Interface的資料結構,為一個資料結構的雛形,無任何的變數型別存在
IplImage:
IplImage資料結構裡面有很多的變數,而他的數值大多都被IplImage專用的函數初始化,所以不太需要用到它資料結構裡面的資料,以及直接設定它資料結構的數據
cvCreateCameraCapture()
用cvCreateCameraCapture()選定視訊裝置編號
cvNamedWindow()
這個副程式,是給視窗化介面命名的副程式,用法如下
cvNamedWindow("視窗名稱",參數);
這個副程式,是給視窗化介面命名的副程式,用法如下
cvNamedWindow("視窗名稱",參數);
cvQueryFrame()
從攝像頭或者文件中抓取並返回
cvFlip()
對目標IplImage資料結構或CvMat資料結構做翻轉的動作,第一個引數為目標IplImage資料結構或CvMat結構,第二個為翻轉後放置結果的IplImage或CvMat資料結構,第三個引數為翻轉方式,0為水平翻轉,1為垂直翻轉,-1為水平+垂直翻轉.
cvFlip(目標IplImage或CvMat資料結構,輸出IplImage或CvMat資料結構,翻轉方式數據)
對目標IplImage資料結構或CvMat資料結構做翻轉的動作,第一個引數為目標IplImage資料結構或CvMat結構,第二個為翻轉後放置結果的IplImage或CvMat資料結構,第三個引數為翻轉方式,0為水平翻轉,1為垂直翻轉,-1為水平+垂直翻轉.
cvFlip(目標IplImage或CvMat資料結構,輸出IplImage或CvMat資料結構,翻轉方式數據)
訂閱:
文章 (Atom)















