2013年6月8日 星期六

OpenCV期末上機 98360082 - 陳炳樺


由於當時考試前一周最重要的課沒有到,所以這次考試很多東西都是臨時抱佛腳。
首先是第一題的畫線,是跟宏恩要了程式後試行猜測出來可能的方法後完成:
但是接下來的貼圖跟圖片移動就困難了。
由於我並不清楚該周上的課程內容,考試前與到教室前的抱佛腳時間大家也都在忙,
所以我只能透過別人在課堂上寫好的程式來揣摩出結果。

貼圖部分,是利用以下方法:
 if(ptr1[3*(x)]<210 && ptr1[3*(x)+1]< 210 && ptr1[3*(x)+2]< 210 ) {
              ptr2[3*(x)]=ptr1[3*(x)];
              ptr2[3*(x)+1]=ptr1[3*(x)+1];
              ptr2[3*(x)+2]=ptr1[3*(x)+2];
              }
在原視訊中一點一點放上我們要的圖片,跳出方法則是超過圖片的維度。
如此一來視訊就會有我們貼的圖片。

然後  ptr1[3*(x)]<210 && ptr1[3*(x)+1]< 210 && ptr1[3*(x)+2]< 210  這部分
是指說圖片在這色以內的才顯示,也就是達到了去白色背功能的作用。

至於圖片追蹤顏色部分,這部分由於我的視訊鏡頭非常的模糊
也有可能是背景部分太過於雜亂導致mouse值一直抓不好
所以我決定在mouse的中間值中,將他們位移
也就是說mouse在中間的點但是沒辦法依照我想要的繼續往上走時
我就將這個mouse值直接向上移動(-數字)
這樣子它的圖片就會在上方游移,也就會剛剛好抓到我的頭髮附近的位置。
然後因為需要分開左右,所以要對mouse的X值做判斷,用以分別出不同的帽子
位移的內容是這樣:

y+mouseY-150
圖片的Y值向上150像素

x+mouseX-150
圖片的X值向左150像素

如此以來,就〝勉強〞的放上頭上了。

沒有留言:

張貼留言