2014-08-29 01:31:21 -0600
| received badge | ● Student
(source)
|
2013-09-22 07:43:59 -0600
| commented answer | Trying to use face recognition, the facerecognizer ok, awesome, I am still getting expecting constructor, destructor or type conversion before < and before . , etc, as on the code output of the question, thanks so much really, I would love to implement face recognizer on my website |
2013-09-14 09:36:33 -0600
| asked a question | Trying to use face recognition, the facerecognizer So I copied from http://docs.opencv.org/trunk/modules/contrib/doc/facerec/facerec_api.html // Let's say we want to keep 10 Eigenfaces and have a threshold value of 10.0
int num_components = 10;
double threshold = 10.0;
// Then if you want to have a cv::FaceRecognizer with a confidence threshold,
// create the concrete implementation with the appropiate parameters:
Ptr<FaceRecognizer> model = createEigenFaceRecognizer(num_components, threshold);
// The following line reads the threshold from the Eigenfaces model:
double current_threshold = model->getDouble("threshold");
// And this line sets the threshold to 0.0:
model->set("threshold", 0.0);
// Create a FaceRecognizer:
Ptr<FaceRecognizer> model = createEigenFaceRecognizer();
// And here's how to get its name:
String name = model->name();
// holds images and labels
vector<Mat> images;
vector<int> labels;
// images for first person
images.push_back(imread("/var/www/html/photos/1.jpg", CV_LOAD_IMAGE_GRAYSCALE)); labels.push_back(0);
images.push_back(imread("/var/www/html/photos/2.jpg", CV_LOAD_IMAGE_GRAYSCALE)); labels.push_back(0);
images.push_back(imread("/var/www/html/photos/3.jpg", CV_LOAD_IMAGE_GRAYSCALE)); labels.push_back(0);
images.push_back(imread("/var/www/html/photos/4.jpg", CV_LOAD_IMAGE_GRAYSCALE)); labels.push_back(0);
images.push_back(imread("/var/www/html/photos/5.jpg", CV_LOAD_IMAGE_GRAYSCALE)); labels.push_back(0);
images.push_back(imread("/var/www/html/photos/6.jpg", CV_LOAD_IMAGE_GRAYSCALE)); labels.push_back(0);
images.push_back(imread("/var/www/html/photos/7.jpg", CV_LOAD_IMAGE_GRAYSCALE)); labels.push_back(0);
images.push_back(imread("/var/www/html/photos/8.jpg", CV_LOAD_IMAGE_GRAYSCALE)); labels.push_back(0);
images.push_back(imread("/var/www/html/photos/9.jpg", CV_LOAD_IMAGE_GRAYSCALE)); labels.push_back(0);
images.push_back(imread("/var/www/html/photos/10.jpg", CV_LOAD_IMAGE_GRAYSCALE)); labels.push_back(0);
images.push_back(imread("/var/www/html/photos/11.jpg", CV_LOAD_IMAGE_GRAYSCALE)); labels.push_back(0);
images.push_back(imread("/var/www/html/photos/12.jpg", CV_LOAD_IMAGE_GRAYSCALE)); labels.push_back(0);
images.push_back(imread("/var/www/html/photos/13.jpg", CV_LOAD_IMAGE_GRAYSCALE)); labels.push_back(0);
images.push_back(imread("/var/www/html/photos/14.jpg", CV_LOAD_IMAGE_GRAYSCALE)); labels.push_back(0);
images.push_back(imread("/var/www/html/photos/15.jpg", CV_LOAD_IMAGE_GRAYSCALE)); labels.push_back(0);
images.push_back(imread("/var/www/html/photos/16.jpg", CV_LOAD_IMAGE_GRAYSCALE)); labels.push_back(0);
images.push_back(imread("/var/www/html/photos/17.jpg", CV_LOAD_IMAGE_GRAYSCALE)); labels.push_back(0);
images.push_back(imread("/var/www/html/photos/19.jpg", CV_LOAD_IMAGE_GRAYSCALE)); labels.push_back(0);
images.push_back(imread("/var/www/html/photos/20.jpg", CV_LOAD_IMAGE_GRAYSCALE)); labels.push_back(0);
images.push_back(imread("/var/www/html/photos/21.jpg", CV_LOAD_IMAGE_GRAYSCALE)); labels.push_back(0);
images.push_back(imread("/var/www/html/photos/22.jpg", CV_LOAD_IMAGE_GRAYSCALE)); labels.push_back(0);
images.push_back(imread("/var/www/html/photos/23.jpg", CV_LOAD_IMAGE_GRAYSCALE)); labels.push_back(0);
images.push_back(imread("/var/www/html/photos/24.jpg", CV_LOAD_IMAGE_GRAYSCALE)); labels.push_back(0);
images.push_back(imread("/var/www/html/photos/25.jpg", CV_LOAD_IMAGE_GRAYSCALE)); labels.push_back(0);
images.push_back(imread("/var/www/html/photos/26.jpg", CV_LOAD_IMAGE_GRAYSCALE)); labels.push_back(0);
images.push_back(imread("/var/www/html/photos/27.jpg", CV_LOAD_IMAGE_GRAYSCALE)); labels.push_back(0);
images.push_back(imread("/var/www/html/photos/28.jpg", CV_LOAD_IMAGE_GRAYSCALE)); labels.push_back(0);
images.push_back(imread("/var/www/html/photos/29.jpg", CV_LOAD_IMAGE_GRAYSCALE)); labels.push_back(0);
images.push_back(imread("/var/www/html/photos/30 ... (more) |
2013-03-06 13:55:48 -0600
| asked a question | apache not being able to load opencv library $myexec="/var/www/html/facedetect/facedetect myimage.jpg"
exec($myexec." 2>&1"); throws: "/var/www/html/facedetect/facedetect: error while loading shared libraries: libopencv_calib3d.so.2.4: cannot open shared object file: No such file or directory"
I think this must have to do with user apache not being able to read a source to get through to that library, what would be the approach for apache to be able to get to that library. Or most likely in which file could I change to an absolute path
libopencv_calib3d.so.2.4: so that it loads form /usr/local/lib/libopencv_calib3d.so.2.4 anyways this might just pop another error for another library, besides I don't know how to appropriately let apache be the owner of that file if that's necessary at all, would check once this gets solved. |
2013-03-06 11:40:27 -0600
| asked a question | Unsupported format or combination of formats () in cvGetQuadrangle Unsupported format or combination of formats () in cvGetQuadrangle with a .png file, it works with a .jpg file though, what could be the cause? OpenCV Error: Unsupported format or combination of formats () in cvGetQuadrangle SubPix, file /root/OpenCV-2.4.4/modules/imgproc/src/samplers.cpp, line 819
terminate called after throwing an instance of 'cv::Exception'
what(): /root/OpenCV-2.4.4/modules/imgproc/src/samplers.cpp:819: error: (-210 ) in function cvGetQuadrangleSubPix
|
2013-03-06 01:18:59 -0600
| asked a question | It always return faces->total = 0 for any photo - issue with cvaux.h Using the below code I have to detect the faces of a photo and print the rectangle's coordinates and sizes, along the total count of rectangles plus draw these rectangles and save the image with the rectangles drawn. Yet I always get faces->total = to 0, one problem could be that actually when compiling cvaux.h inclussion pops up a list of errors. Is cvaux.h necessary for this to work ? it seems to execute although the return of faces->total is 0. If cvaux.h is the cause of the problem here are the errors listed when I try to compile facedetectv.c as rancho: [root@ip-xxx html]# gcc `pkg-config --cflags --libs opencv` -o rancho facedetectv.c
In file included from /usr/local/include/opencv/cvaux.h:54,
from facedetectv.c:4:
/usr/local/include/opencv2/video/background_segm.hpp:47:16: error: list: No such file or directory
In file included from /usr/local/include/opencv/cvaux.h:54,
from facedetectv.c:4:
/usr/local/include/opencv2/video/background_segm.hpp:48: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'cv'
In file included from /usr/local/include/opencv/cvaux.h:60,
from facedetectv.c:4:
/usr/local/include/opencv2/legacy/blobtrack.hpp:82: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'CvVSModule'
/usr/local/include/opencv2/legacy/blobtrack.hpp:133: error: expected ';', ',' or ')' before '=' token
/usr/local/include/opencv2/legacy/blobtrack.hpp:137: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'CvFGDetector'
/usr/local/include/opencv2/legacy/blobtrack.hpp:148: error: expected ')' before '*' token
/usr/local/include/opencv2/legacy/blobtrack.hpp:149: error: expected '=', ',', ';', 'asm' or '__attribute__' before '*' token
/usr/local/include/opencv2/legacy/blobtrack.hpp:160: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'cvBlob'
In file included from /usr/local/include/opencv/cvaux.h:60,
from facedetectv.c:4:
/usr/local/include/opencv2/legacy/blobtrack.hpp:180: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'CvBlobSeq'
/usr/local/include/opencv2/legacy/blobtrack.hpp:270: error: expected specifier-qualifier-list before 'CvBlobSeq'
/usr/local/include/opencv2/legacy/blobtrack.hpp:273: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'CvBlobTrackSeq'
/usr/local/include/opencv2/legacy/blobtrack.hpp:294: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'CvBlobDetector'
/usr/local/include/opencv2/legacy/blobtrack.hpp:308: error: expected ')' before '*' token
/usr/local/include/opencv2/legacy/blobtrack.hpp:311: error: expected '=', ',', ';', 'asm' or '__attribute__' before '*' token
/usr/local/include/opencv2/legacy/blobtrack.hpp:312: error: expected '=', ',', ';', 'asm' or '__attribute__' before '*' token
/usr/local/include/opencv2/legacy/blobtrack.hpp:314: error: expected identifier or '(' before ':' token
/usr/local/include/opencv2/legacy/blobtrack.hpp:319: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'cvDetectedBlob'
/usr/local/include/opencv2/legacy/blobtrack.hpp:327: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'CvObjectDetector'
/usr/local/include/opencv2/legacy/blobtrack.hpp:391: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'CvImageDrawer'
/usr/local/include/opencv2/legacy/blobtrack.hpp:410: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'CvBlobTrackGen'
/usr/local/include/opencv2/legacy/blobtrack.hpp:420: error: expected ')' before '*' token
/usr/local/include/opencv2/legacy/blobtrack.hpp:427: error: expected '=', ',', ';', 'asm' or '__attribute__' before '*' token
/usr/local/include/opencv2 ... (more) |
2013-03-05 05:44:36 -0600
| asked a question | Trying to detect faces in linux, done it in windows I am trying to detect faces in still photos. I am using the following which gets to compile,
using Open CV 2.2.0 installed from a rpm for Cent OS. What I get is Failed to initialize libdc1394
Segmentation fault I read that libdc1394 has to do with it not initializing the camera or something similar and that it can be ignored, this is holding in a server therefore it won't initialize the server's camera. But segmentation fault does not allow me to execute the code like it should.
Right now the code below doesn't print in a way that php can access it, I have that functioning with C++ for Windows but it's been running on a project on localhost for sometime now and I want to host it online but for that I need to have opencv working with Linux. Segmentation fault could come from any "stupid" error the below code might have but I'm just not very much proficient with c or c++. Thanks #include <stdio.h>
#include "cv.h"
#include "highgui.h"
#include "cvaux.h"
CvHaarClassifierCascade *cascade;
CvMemStorage *storage;
char *face_cascade="/usr/include/opencv/haarcascade_frontalface_default.xml";
void detectFacialFeatures( IplImage *img,IplImage *temp_img)
{
char image[100],msg[100],temp_image[100];
float m[6];
double factor = 1;
CvMat M = cvMat( 2, 3, CV_32F, m );
int w = (img)->width;
int h = (img)->height;
CvSeq* faces;
CvRect *r;
m[0] = (float)(factor*cos(0.0));
m[1] = (float)(factor*sin(0.0));
m[2] = w*0.5f;
m[3] = -m[1];
m[4] = m[0];
m[5] = h*0.5f;
cvGetQuadrangleSubPix(img, temp_img, &M);
CvMemStorage* storage=cvCreateMemStorage(0);
cvClearMemStorage( storage );
if( cascade )
faces = cvHaarDetectObjects(img,cascade, storage, 1.2, 2, CV_HAAR_DO_CANNY_PRUNING, cvSize(20, 20));
else
printf("\nFrontal face cascade not loaded\n");
printf("\n no of faces detected are %d",faces->total);
int i=0;
while(i<faces->total)
{
r = ( CvRect* )cvGetSeqElem( faces, i );
cvRectangle( img,cvPoint( r->x, r->y ),cvPoint( r->x + r->width, r->y + r->height ),
CV_RGB( 255, 0, 0 ), 1, 8, 0 );
printf("\n face_x=%d face_y=%d wd=%d ht=%d",r->x,r->y,r->width,r->height);
cvResetImageROI(img);
i++;
}
if(faces->total>0)
{
sprintf(image,"face_output%d.jpg");
cvSaveImage( image, img ,0);
}
}
int main( int argc, char *argv[])
{
char *dea;
char *image;
dea=argv[1];
printf("%c",argv[1]);
image=argv[1];
IplImage *img,*temp_img;
int key;
storage = cvCreateMemStorage( 0 );
cascade = ( CvHaarClassifierCascade* )cvLoad( face_cascade, 0, 0, 0 );
if( !(cascade) )
{
fprintf( stderr, "ERROR: Could not load classifier cascade\n" );
return -1;
}
sprintf("%c",argv[1]);
img=cvLoadImage(dea,0);
temp_img=cvLoadImage(dea,0);
if(!img)
{
printf("Could not load image file and trying once again: %s\n",image);
}
printf("\n curr_image = %s",image);
detectFacialFeatures(img,temp_img);
cvReleaseHaarClassifierCascade( &cascade );
cvReleaseMemStorage( &storage );
cvReleaseImage(&img);
cvReleaseImage(&temp_img);
return 0;
}
the segmentation fault comes in this line: faces = cvHaarDetectObjects(img,cascade, storage, 1.2, 2, CV_HAAR_DO_CANNY_PRUNING, cvSize(20, 20));
|
2013-03-04 09:52:44 -0600
| commented answer | command not found linux opencv right, I just think the problem might be related to missing dependencies for opencv in CentOS, it's harder to find information for it that's related to installing OpenCV |
2013-03-04 08:46:55 -0600
| commented answer | command not found linux opencv added it to the facedetect.c file but still get the same errors, posted the exact output from ssh |
2013-03-04 08:45:12 -0600
| received badge | ● Editor
(source)
|
2013-03-04 07:44:09 -0600
| asked a question | command not found linux opencv CvHaarClassifierCascade command not found trying to execute #include<stdio.h>
#include<cv.h>
#include<highgui.h>
CvHaarClassifierCascade *cascade;
CvMemStorage *Membuffer;
void detectfaces(IplImage *frame)
{
int i;
CvSeq *faces=cvHaarDetectObjects(frame,cascade,Membuffer,1.1,3,0,cvSize(30,30));//Maximum 3 neighbourhood images and the last cvsize gives minimum size of face
for(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 main(int argc,char *argv[])
{IplImage *frame;
CvCapture *capture;
int key;
char filename[]="haarcascade_frontalface_alt.xml";
cascade=(CvHaarClassifierCascade *)cvLoad(filename,0,0,0);
Membuffer=cvCreateMemStorage(0);
while(key!='q')
{frame=cvQueryFrame(capture);
if(!frame)
break;
frame->origin=0;
detectfaces(frame);
key=cvWaitKey(10);
}
cvReleaseCapture(&capture);
cvDestroyWindow("Video");
cvReleaseHaarClassifierCascade(&cascade);
cvReleaseMemStorage(&Membuffer);
}
also trying to execute installation samples from fodler c other command not found errors pop up in putty ssh What can I do, where might the problem be at? [root@ip-xxx c]# ./facedetect.c
./facedetect.c: line 5: CvHaarClassifierCascade: command not found
./facedetect.c: line 6: CvMemStorage: command not found
./facedetect.c: line 8: syntax error near unexpected token `('
./facedetect.c: line 8: `void detectfaces(IplImage *frame)'
Thanks |