Unhandled Exception: System.AccessViolationException: Attempted to read or write protected memory.
Dear All,
Hi, Need Help.
I am doing work on emotion recognition, using VS2010, OpenCV & FANN Library in it. It Build fine but during .exe it give following error:
Unhandled Exception: System.AccessViolationException: Attempted to read or write protected memory. This is often an indication that other memory is corrupt. at fann_run(fann , Single* ) at FaceDetector.detect_emotion(FaceDetector* , DistanceFeatures emotion, Dist anceFeatures neutral, Double* output) in c:\down\uf-lightbot-read-only\src\faced etector.cpp:line 128 at process_features(FaceDetector* face_detect, Mat* frame, Face* face) in c:\ down\uf-lightbot-read-only\src\main.cpp:line 176 at main(Int32 argc, SByte argv) in c:\down\uf-lightbot-read-only\src\main.c pp:line 74 at mainCRTStartup()*
Can any body help me what is the problem ?
**main.cpp** code is as follows.
#include <iostream>
#include <cmath>
#include "FaceFeatures.h"
#include "FaceDetector.h"
#include <opencv2/highgui/highgui.hpp>
#include <cstdlib>
using namespace std;
using namespace cv;
void process_features(FaceDetector &face_detect,Mat &frame, Face face);
int
main(int argc, char *argv[])
{
CvCapture* capture = NULL;
double t = 0.0;
Mat frame, frameCopy;
Mat gray;
string fname;
vector<Face> faces;
unsigned int kmod = 0;
FaceDetector faceDetector("haarcascade_frontalface_alt.xml",
"haarcascade_mcs_mouth.xml",
"haarcascade_mcs_nose.xml",
"haarcascade_mcs_lefteye.xml",
"haarcascade_mcs_righteye.xml");
capture = cvCaptureFromCAM(0);
cvNamedWindow("result", 1);
if( capture ) {
cout << "In capture ..." << endl;
for(;;) {
kmod++;
IplImage* iplImg = cvQueryFrame( capture );
frame = iplImg;
if( frame.empty() )
break;
if( iplImg->origin == IPL_ORIGIN_TL )
frame.copyTo( frameCopy );
else
flip( frame, frameCopy, 0 );
if( waitKey( 10 ) >= 0 )
goto _cleanup_;
if(kmod%2 == 0) {
faces.clear(); /*Empty face list*/
faceDetector.detect(frameCopy, faces);
}
vector<Face>::const_iterator it;
for(it = faces.begin(); it != faces.end(); it++) {
process_features(faceDetector, frameCopy, *it);
}
imshow("result", frameCopy);
}
}
_cleanup_:
cvReleaseCapture( &capture );
return 0;
}
double calc_dist(Point p1, Point p2)
{
double v,aa,bb;
aa=p1.x -p2.x;
bb=p1.y-p2.y ;
v = sqrt(pow(aa,2) + pow (bb,2 ));
return v;
}
void
process_features(FaceDetector &face_detect, Mat &frame, Face face)
{
static bool initialized = false;
static DistanceFeatures neutral;
static int init_counter = 0;
// cout<<"processing"<<endl;
rectangle(frame, Point(face.face_box.x, face.face_box.y), Point(face.face_box.x+ face.face_box.width, face.face_box.y+face.face_box.height), CV_RGB(0, 0 , 255 ));
circle(frame, face.features.mouth.lip_left_edge, 3, CV_RGB(255, 0 , 0 ), -1);
circle(frame, face.features.mouth.lip_right_edge, 3, CV_RGB(255, 0 , 0 ), -1);
circle(frame, face.features.mouth.lip_top_center, 3, CV_RGB(255, 0 , 0 ), -1);
circle(frame, face.features.mouth.lip_bottom_center, 3, CV_RGB(255, 0 , 0 ), -1);
circle(frame, face.features.eyes.left_eye_top, 3, CV_RGB(255, 0 , 0 ), -1);
circle(frame, face.features.eyes.left_eye_bottom, 3, CV_RGB(255, 0 , 0 ), -1);
circle(frame, face.features.eyes.right_eye_top, 3, CV_RGB(255, 0 , 0 ), -1);
circle(frame, face.features.eyes.right_eye_bottom, 3, CV_RGB(255, 0 , 0 ), -1);
circle(frame, face.features.brows.left_brow_left, 3, CV_RGB(0, 255 , 0 ), -1);
circle(frame, face.features.brows.left_brow_center, 3, CV_RGB(0, 255 , 0 ), -1);
circle(frame, face.features.brows.left_brow_right, 3, CV_RGB(0, 255 , 0 ), -1);
circle(frame, face.features.brows.right_brow_left, 3, CV_RGB(0, 255 , 0 ), -1);
circle(frame, face.features.brows ...