程序运行出现0X00000048不能为READ
程序调试的时候出现Unhandled exception 0xC0000005;Access Violation怎么回事
好像在红色代码附近有问题const int samples=200;//样本个数
const int height=15;
const int width=8;
const long len= height* width;
int *sam_data=new int [samples*height*width];
char file_sample[samples][100];
CvMat *data=cvCreateMat(samples,len,CV_32FC1); //样本数据
CvMat *avg=cvCreateMat(1,len,CV_32FC1); //平均值矩阵
CvMat *eigenvalues=cvCreateMat(1,len,CV_32FC1);//特征值矩阵1*380
CvMat *eigenvectors=cvCreateMat(len,len,CV_32FC1);//特征向量矩阵380*380
CvMat *project_data=cvCreateMat(1,len,CV_32FC1); //测试样本投影到特征空间得到的矩阵1*380
CvMat *construct_data=cvCreateMat(1,len,CV_32FC1);//重构后得到一个行向量
IplImage *src;
IplImage *resize_src;
IplImage *img;
IplImage *construct_img;
resize_src=cvCreateImage(cvSize(height,width),IPL_DEPTH_32F,1);
img=cvCreateImage(cvSize(height,width),IPL_DEPTH_32F,1);
construct_img=cvCreateImage(cvSize(height,width),IPL_DEPTH_32F,1);
ifstream fin_sample("E:\\samples.txt");
//读入样本
for (int i_samples=0; i_samples<samples;++i_samples)
fin_sample.getline(file_sample[i_samples],70 );
//将所有样本转化为一行存在sam_data中
for (int i= 0; i< samples; i++) {
src= cvLoadImage(file_sample[i], CV_LOAD_IMAGE_GRAYSCALE);//src为92*112
// resize_src=cvCreateImage(cvSize(height,width),IPL_DEPTH_8U,1);//resize_src为19*20
// cvResize(src, resize_src);
for (int ii= 0; ii< height; ii++)
{
for (int jj= 0; jj< width; jj++)
{
sam_data[i*len+( ii*width) +jj] =((uchar *) (src->imageData+ii*src->widthStep)) [jj];
}
} }}
程序调试的时候出现Unhandled exception 0xC0000005;Access Violation怎么回事
好像在红色代码附近有问题const int samples=200;//样本个数
const int height=15;
const int width=8;
const long len= height* width;
int *sam_data=new int [samples*height*width];
char file_sample[samples][100];
CvMat *data=cvCreateMat(samples,len,CV_32FC1); //样本数据
CvMat *avg=cvCreateMat(1,len,CV_32FC1); //平均值矩阵
CvMat *eigenvalues=cvCreateMat(1,len,CV_32FC1);//特征值矩阵1*380
CvMat *eigenvectors=cvCreateMat(len,len,CV_32FC1);//特征向量矩阵380*380
CvMat *project_data=cvCreateMat(1,len,CV_32FC1); //测试样本投影到特征空间得到的矩阵1*380
CvMat *construct_data=cvCreateMat(1,len,CV_32FC1);//重构后得到一个行向量
IplImage *src;
IplImage *resize_src;
IplImage *img;
IplImage *construct_img;
resize_src=cvCreateImage(cvSize(height,width),IPL_DEPTH_32F,1);
img=cvCreateImage(cvSize(height,width),IPL_DEPTH_32F,1);
construct_img=cvCreateImage(cvSize(height,width),IPL_DEPTH_32F,1);
ifstream fin_sample("E:\\samples.txt");
//读入样本
for (int i_samples=0; i_samples<samples;++i_samples)
fin_sample.getline(file_sample[i_samples],70 );
//将所有样本转化为一行存在sam_data中
for (int i= 0; i< samples; i++) {
src= cvLoadImage(file_sample[i], CV_LOAD_IMAGE_GRAYSCALE);//src为92*112
// resize_src=cvCreateImage(cvSize(height,width),IPL_DEPTH_8U,1);//resize_src为19*20
// cvResize(src, resize_src);
for (int ii= 0; ii< height; ii++)
{
for (int jj= 0; jj< width; jj++)
{
sam_data[i*len+( ii*width) +jj] =((uchar *) (src->imageData+ii*src->widthStep)) [jj];
}
} }}
看看下标的变化
这么看是看不出来的