這次的作業是以像素的層級來看的
用了兩個迴圈就能掃描一張圖
for (int y=0; y
uchar* ptr1=(uchar*) (frame->imageData +y*frame->widthStep);
uchar* ptr2=(uchar*) (frame2->imageData +y*frame2->widthStep);
for (int x=0; x
ptr2[3*x]=ptr1[3*x]; //抓藍色
ptr2[3*x+1]=0;
ptr2[3*x+2]=0;
}
}
由上得知,一個像素由三個元素組成,依序為BGR
一個畫面就像一個矩陣,存放著這些像素
下面是放一張圖片在上面,其中alpha常數是調整透明度
for (int y=0; y
uchar* ptr1=(uchar*) (logoImg->imageData +y*logoImg->widthStep);
uchar* ptr2=(uchar*) (frame5->imageData +(y+y1)*frame5->widthStep);
for (int x=0; x
ptr2[3*(x+x1)]=alpha*ptr1[3*(x+x1)] + (1-alpha)*ptr2[3*(x+x1)];
ptr2[3*(x+x1)+1]=alpha*ptr1[3*(x+x1)+1] + (1-alpha)*ptr2[3*(x+x1)+1];
ptr2[3*(x+x1)+2]=alpha*ptr1[3*(x+x1)+2] + (1-alpha)*ptr2[3*(x+x1)+2];
}
}

沒有留言:
張貼留言