私はウェブカメラのライブビデオストリームから検出された顔に長方形を描くために、nashruddin.comのソースコードを使用しています。画像から検出された顔の顔のピクセルにアクセスする方法は?
私は顔を変更したい、または矩形全体を黒色に変更したいと思います。 私はこのページのソリューションを使用しようとしました:http://www.cs.iit.edu/~agam/cs512/lect-notes/opencv-intro/opencv-intro.html#SECTION00053000000000000000
しかし、顔や矩形が黒くなることはありません。
何私は実際に試してみました、例の一つが、このようなものです:私は何をしたいか
//do the capture frame all those
for(int i = 0 ; i < (faces ? faces->total : 0) ; i++) {
CvRect *r = (CvRect*)cvGetSeqElem(faces, i);
cvRectangle(frame,
cvPoint(r->x, r->y),
cvPoint(r->x + r->width, r->y + r->height),
CV_RGB(255, 0, 0), 1, 8, 0);
int x=r->x;
int y=r->y;
int width=r->width;
int height=r->height;
for(int i=x; i<=height; i++){
for(int j=y; j<=width; j++){
//data[i*step+j*channels+0] = 0;//3=yellow; 2=blue; 1=purple;
((unsigned char *)(frame->imageData + i*frame->widthStep))[j*frame->nChannels + 0]=0;// B
((unsigned char *)(frame->imageData + i*frame->widthStep))[j*frame->nChannels + 1]=0; // G
((unsigned char *)(frame->imageData + i*frame->widthStep))[j*frame->nChannels + 2]=0; // R }}
は、私もcvRectangleで使用している点を用いて、幅と高さを宣言し、ありますこれは点rである。
しかし、出力は、どのように矩形がどのように見えるかと同じサイズではありません。出力は通常、矩形または正方形であり、色は黒であるが、矩形とは異なる大きさおよび大きさが異なり、さらに小さくなり、アライメントから外れる。
なぜわからないのですか?
助けてください。 目的は、顔を黒で覆い、顔を黒のピクセルで隠すことです。
私を助けてください。 ありがとうございます。