
今天要學習的是偵測視訊的顏色,並且抽換掉該目的顏色,在這張圖片當中,就是要將多拉a夢的白色臉做顏色的抽換,而做法跟上次的pixel處理一樣,先是用for迴圈把整張圖片跑過一次,接著再用D = sqrt((原始藍色-偵測藍色)^2 + (原始綠色-偵測綠色))^2 + (原始紅色-偵測紅色))^2) 來偵測顏色,並且用
if (sqrt(D) <>
ptr1[3*x]=0;
ptr1[3*x+1]=0;
ptr1[3*x+2]=255;
}
TH就是顏色的門檻值,在這個程式碼是將顏色抽換成紅色。
接著是開啟一個空白的視窗,原始的白色,用紅色著色到白色視窗裡面,使用的方式跟顏色的偵測是一樣的,不過不同的地方是,在做FOR迴圈是去跑原始視訊的PIXEL,而在顏色抽換的地方則是抽換掉新的白色視窗的顏色,而老師要求著色的軌跡不能洗掉,一開始把全白的FOR迴圈寫在WHILE裡面,迴圈一執行,白色的底圖會一直覆蓋掉,所以必須把白色的FOR迴圈寫在外面,這樣才可以把軌跡留存

沒有留言:
張貼留言