Я использую исходный код на 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.
Однаковывод, никогда не бывает такого же размера, как выглядит прямоугольник.Выходные данные, как правило, представляют собой прямоугольник или квадрат, черного цвета, но с разными и меньшими размерами, чем у прямоугольника, которым он и должен быть, и они также меньше и не выровнены.
Я не знаюпочему.
Пожалуйста, помогите.Цель состоит в том, чтобы покрыть лицо черным, скрыть лицо черными пикселями.
Пожалуйста, помогите мне.Спасибо.