请任何人都可以帮助我请我每次调试我的项目时都很痛苦,我有这个异常,我无法解决它请帮助导致这个异常的原因以及我该如何解决它。这是我的代码:
////////////////////////////////////////////////////////////////////////
// This is a simple, introductory OpenCV program.
////////////////////////////////////////////////////////////////////////
#include <stdlib.h>
#include <stdio.h>
#include <math.h>
#include <iostream>
#include <cv.h>
#include <highgui.h>
#define PIXEL(img,x,y) (img)->imageData[x*img->widthStep+y]
/**
* Replacement for Matlab's bwareaopen()
* Input image must be 8 bits, 1 channel, black and white (objects)
* with values 0 and 255 respectively
*/
/*void removeSmallBlobs(cv::Mat& im, double size)
{
// Only accept CV_8UC1
if (im.channels() != 1 || im.type() != CV_8U)
return;
// Find all contours
std::vector<std::vector<cv::Point> > contours;
cv::findContours(im.clone(), contours, CV_RETR_EXTERNAL, CV_CHAIN_APPROX_SIMPLE);
for (int i = 0; i < contours.size(); i++)
{
// Calculate contour area
double area = cv::contourArea(contours[i]);
// Remove small objects by drawing the contour with black color
if (area > 0 && area <= size)
cv::drawContours(im, contours, i, CV_RGB(0,0,0), -1);
}
}
*/
int main(int argc, char *argv[])
{
IplImage *Img, *img;
int height,width;
int i,j, count=0;
int morph_elem=0;
int morph_size = 0;
int morph_operator = 0;
//read image
Img = cvLoadImage("1.jpg",1);
cvShowImage("original image",Img );
//RGB to HSV
IplImage* hsv = cvCreateImage( cvGetSize(Img), 8, 3 );
cvCvtColor( Img, hsv, CV_BGR2HSV );
cvShowImage("hsv image ",hsv );
//extract the h, s, and v images individualy
IplImage* h_plane = cvCreateImage( cvGetSize(Img), 8, 1 );
IplImage* s_plane = cvCreateImage( cvGetSize(Img), 8, 1 );
IplImage* v_plane = cvCreateImage( cvGetSize(Img), 8, 1 );
IplImage* planes[] = { h_plane, s_plane };
cvCvtPixToPlane( hsv, h_plane, s_plane, v_plane, 0 );
// Now apply each color band's particular thresholds to the color band
IplImage* yellow = cvCreateImage( cvGetSize(v_plane), 8, 3 );
cvThreshold( h_plane, h_plane,0.09*255,0.14*255,CV_THRESH_BINARY);
cvThreshold( s_plane, s_plane,0.1*255,1.0*255,CV_THRESH_BINARY);
cvThreshold( v_plane, v_plane,0.1*255,1.0*255,CV_THRESH_BINARY);
cvShowImage("h mask ",h_plane );
cvShowImage("s mask ",s_plane );
cvShowImage("v mask ",v_plane );
CvMat *h_array = cvCreateMat(h_plane->height,h_plane->width,CV_8UC1 );
CvMat *s_array = cvCreateMat(s_plane->height,s_plane->width,CV_8UC1 );
CvMat *v_array= cvCreateMat(v_plane->height,v_plane->width,CV_8UC1 );
cvConvert( h_plane, h_array );
cvConvert( s_plane,s_array );
cvConvert( v_plane,v_array );
// Anding
CvMat* yellowObjectsMask= cvCreateMat( Img->height,Img->width,CV_8UC1 );
cvAnd(h_array, s_array,yellowObjectsMask);
cvShowImage("yellow objects ",yellowObjectsMask );
cvShowImage("yellow objects ",yellowObjectsMask );
//convert to IplImage
//IplImage *im = cvLoadImage( "1.jpg");
//CvMat *mat = cvCreateMat(im->height,im->width,CV_32FC3 );
//cvConvert( im,mat );
/*int count=0;
for (int i=0;i<yellowObjectsMask->rows;i++){
for int j=0;j<yellowObjectsMask->cols;j++){
if (yellowObjectsMask(i,j)==0){
count=count+1;
}
}
}
if (count==i*j){
cout<<"not infected";
}
*/
// wait for a key
cvWaitKey(0);
// release the images and close the windows
cvReleaseImage(&Img );
//cvDestroyWindow("Output");
//cvDestroyWindow("Gray");
return 0;
}
FirstProj.exe 中 0x75ba9617 处未处理的异常:Microsoft C++ 异常:内存位置 0x0011fb38 处的 cv::Exception。