我已經使用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。
但是,輸出尺寸與矩形的外觀大小決不相同。輸出通常是矩形或正方形,顏色是黑色,但與矩形有不同的尺寸和較小的尺寸,它們應該是這樣,而且它們也較小並且不在對齊中。
我不知道爲什麼。
請幫忙。 其目的是用黑色遮蓋臉部,用黑色像素遮蓋臉部。
請幫幫我。 謝謝。