這次要做的作業是在視訊上加上相框,因為不知道怎麼調整大小所以直接在小畫家調整了。
課堂練習是將一個圖案或視訊轉成藍色綠色或紅色主要程式如下
for (int y=0; y<pImg->height; y++)
{
uchar* ptr1=(uchar*) (pImg->imageData +y*pImg->widthStep);
uchar* ptr2=(uchar*) (bImg->imageData +y*bImg->widthStep);
for
(int x=0; x<pImg->width; x++) {
ptr2[3*x]=ptr1[3*x];
ptr2[3*x+1]=0;
ptr2[3*x+2]=0;
}
}
今天的作業是把視訊加上相框不過我大小沒有調整好
if( (logoImg->height + y1) <
mergeImg->height) {
mergeImg=cvCloneImage(pImg);
for
(int y=0; y<logoImg->height; y++) {
uchar* ptr1=(uchar*) (logoImg->imageData
+y*logoImg->widthStep);
uchar* ptr2=(uchar*)
(mergeImg->imageData +(y+y1)*mergeImg->widthStep);
for (int x=0;
x<logoImg->width; x++) {
//在這裡加上if去除中間白色的部分
if(ptr1[3*x]<250&&ptr1[3*x+1]<250&&ptr1[3*x+2]<250){
ptr2[3*(x)]=alpha*ptr1[3*(x)] + (1-alpha)*ptr2[3*(x)];
ptr2[3*(x)+1]=alpha*ptr1[3*(x)+1] +
(1-alpha)*ptr2[3*(x)+1];
ptr2[3*(x)+2]=alpha*ptr1[3*(x)+2] + (1-alpha)*ptr2[3*(x)+2]; }
}
}
}
沒有留言:
張貼留言