-1
我試圖使灰色圖像更亮,代碼確實編譯了正常,但沒有更改後臺圖片,並且在執行完成後顯示錯誤消息Unhandled exception ...
。以下是一段我的代碼:執行後未處理的異常
int main(int argc, _TCHAR* argv[])
{
IplImage *img = cvLoadImage("mra.jpg");
if (!img) {
printf("Error: Couldn't open the image file.\n");
return 1;
}
//IplImage* new_image = getlargersize(img);
double Min , Max ;
Min = Max = 0 ;
Max_Min (img , &Min , &Max);
cout<<"the max value in the picture is :"<<Min<<" and the minimum value is :"<<Max<<endl ;
IplImage* img2 = eclaircir(Min ,Max ,img);
cvNamedWindow("Image:", CV_WINDOW_AUTOSIZE);
cvNamedWindow("Image2:", CV_WINDOW_AUTOSIZE);
cvShowImage("Image2:", img2);
cvShowImage("Image:", img);
cvWaitKey(0);
cvDestroyWindow("Image2:");
cvDestroyWindow("Image:");
cvReleaseImage(&img2);
cvReleaseImage(&img);
return 0;
}
void Max_Min(IplImage* temp , double *min , double *max){
CvScalar pix ;
for (int i = 0 ; i < temp->height ; i++){
for (int j = 0 ; j < temp->width ; j++){
pix = cvGet2D(temp , i , j);
if (pix.val[0] >= *max){
*max = pix.val[0];
}
if (pix.val[0] <= *min){
*min = pix.val[0];
}
}
}
}
IplImage* eclaircir (double min , double max , IplImage* image){
double temp = max - min ;
CvScalar pix ;
for (int i = 0 ; i < image->height ; i++){
for (int j = 0 ; j < image->width ; j++){
pix = cvGet2D(image , i , j);
pix.val[0] = (pix.val[0] - min)*255 ;
pix.val[0] = pix.val[0]/temp ;
cvSet2D(image , i , j , pix);
}
}
return image ;
}
要確定爲什麼你會得到一個異常,知道你得到了什麼異常顯然是有用的。此外,你應該格式化你的文章,使其可讀性(編輯窗口上方有按鈕,您可以點擊進行格式化)。 – sth 2011-01-08 23:46:03
在Visual Studio中,有一個選項可以讓調試器中斷異常。 – StackedCrooked 2011-01-09 00:53:26