以下の長方形配列を使用して、Haar Classifier によって検出された顔をループします。
for( int i = 0; i < (objects ? objects->total : 0 ); i++ )
{
CvRect* r = ( CvRect* )cvGetSeqElem( objects, i );
cvRectangle( frame, cvPoint( r->x, r->y ), cvPoint( r->x + r->width, r->y + r->height ),colors[i%1]);
}
しかし、分類器で検出された各顔のピクセルデータを変更したい、つまり、各長方形のピクセルの値を変更したい:
CvRect* r;
私は試した:
for( int i = 0; i < (objects ? objects->total : 0 ); i++ )
{
r[i];
for(int j = r->y; j < r->y + r->height; j++)
{
for(int k = r->x; k < r->x + r->width; k++)
{
frame->imageData[k*3] = 0;
frame->imageData[k*3+2] = 0;
}
}
}
顔のGチャンネルだけ残したいのですが、変数「r」が宣言されていないと言っています。