Thank you for this code to work with this more a problem when I register more than one face, when I recognized the name of the mess he makes he gets confused, the trading name of the face. What can I do.
Hi,
Thanks for the wonderful work.
My program get stuck when I set images around 17.
The CvInvoke.cvCalcEigenObjects does not respond at all and get stuck there.
Any idea ?
Regards,
Ajith
Could you extend the program to scan image files instead of only webcam?
I would like a demo where i can teach the program detecting my family by giving it a some image files.
And maybe later let it scan my huge photo collection and make a list of which images contains photos of family members. (hope it makes sense)
p.s. The program crashes when it does not find a camera:
System.NullReferenceException: Error: Unable to create capture from camera0
at Emgu.CV.Capture..ctor(Int32 camIndex)
at Emgu.CV.Capture..ctor()
at MultiFaceRec.FrmPrincipal.button1_Click(Object sender, EventArgs e) in C:\Users\Sergio Gutiérrez\Desktop\FaceRecProOV\FaceRecProOV\MainForm.cs:line 73
at System.Windows.Forms.Control.OnClick(EventArgs e)
at System.Windows.Forms.Button.OnClick(EventArgs e)
at System.Windows.Forms.Button.WndProc(Message& m)
at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
Hi, The framegraber event do the code of detection and recognition each time that the camera captures one fotogram, instead of this you must remove this(Framegraber/capture cam) and assign a static images stored en your HDD to analyze.
its simple....please read and Analyze the code...the work of modify the article to your needs is yours!!
...this solution to detect a big "X" on the entire page?
I'm thinking in terms of batch scanning of documents with a sheet of paper with an "X" printed on the entire page to separate "groups" of related scanned documents.
Or if a page is practically blank?
I'm thinking to delete/remove the 2nd/back side of a double-sided scanned document when the page is "blank" (for example, less than 1% "black" on the page, I guess).
Too bad I ain't the ONE who created it; then again, if I did, I'd be bragging on myself.
You, Sergio, are the ONE to be bragging on!
Let's FACE it, everyONE should RECOGNIZE that you did a great job. You have an EYE towards great solutions. Pardon if I NOSE in on this just to MOUTH off, but it's awesome.
For those of us not as sophisticatedly knowledgeable as Sergio, CHIN up and get to thinking of simpler soltuions. That's right, get that "idea" light bulb above that FOREHEAD. Perhaps even become a PUPIL of Serio's solutions.
Sergio, your solution is HEAD & SHOULDERS above the rest.
(did you get the number of ONEs in the comment? Five, dude!)
Hi i am pradeep From SL(Sri lanka).Could u tell me if it's possible to create Training images in side folder separate for each person and when load faces take the Folder name as Person name???I think my q is clear...
What i done was this
try
{
//Load of previus trainned faces and labels for each image
string Labelsinfo = File.ReadAllText(Application.StartupPath + "/TrainedFaces/TrainedLabels.txt");
string[] Labels = Labelsinfo.Split('%');
NumLabels = Convert.ToInt16(Labels[0]);
ContTrain = NumLabels;
string[] LoadFacesd;
string LoadFaces;
}
catch(Exception e)
{
//MessageBox.Show(e.ToString());
MessageBox.Show("Nothing in binary database, please add at least a face(Simply train the prototype with the Add Face Button).", "Triained faces load", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
}
hi
thanks for your good article
i download your app and test it
it was very good and fast
but is recognize untrained person as last trained person
plz help me
thanks
Decision is made by checking euclidian distances between eigen values of current data and eigen values of each training image data. If calculated euclidian distance is less then distance threshold, current image is recognized. So if you want to increase accuracy, you should decrease distance threshold...
C#
EigenObjectRecognizer recognizer = new EigenObjectRecognizer(
trainingImages.ToArray(),
labels.ToArray(),
1000,
ref termCrit);
Thank you for the tutorial. it is giving error: currentFrame grabber.QueryFrame = (). Resize (260, 200, Emgu.CV.CvEnum.INTER.CV_INTER_CUBIC);
grabber.QueryGrayFrame gray = (). Resize (260, 200, Emgu.CV.CvEnum.INTER.CV_INTER_CUBIC); What can I do help me please