1. 詳細列出bug:
(1) 無法感應變換皇冠
(2) 無法讓皇冠戴在頭上
2.詳細列出解決bug的流程與方法:
(1) 藉由平均膚色區塊取得鼠標位子
for(int y=0; y<frame2->height; y++)
{
uchar* ptr1=(uchar*) (frame2->imageData +y*frame2->widthStep);
for (int x=0; x<frame2->width; x++)
{
if(ptr1[x]!=0)
{
refX+=x;
refY+=y;
refNumber++;
}
}
}
if(refNumber>0)
{
mouseX=refX/refNumber;
mouseY=refY/refNumber;
}
(2) 設條件,當鼠標位子在特定範圍的 x,y 時,將套用的皇冠變換
if (mouseX <=220 && mouseX >10 && mouseY<=300 ) state=1;
if (mouseX <=400 && mouseX >220 && mouseY<=300 ) state=2;
if (mouseX <=610 && mouseX >400 && mouseY<=300 ) state=3;
(3) 強制提高鼠標位子 (因為平均膚色位子會低於頭頂)
3.心得:
當初沒有保存先前完成的戴面具Code,本來想說直接改範例的程式碼就好。可是發現到,在考試壓力下;實在很難靜心地做修改。因此考試時僅完成 三個皇冠+去除背色。
考完後,可以完成這項測試內容;也算完成了一件遺憾。
沒有留言:
張貼留言