сохранение изображения в файл после обработки opencv

0

Я пытаюсь сохранить изображение после обработки, но, к сожалению, я получаю исключение. Он запускает все строки, кроме команды imwrite (последняя команда в коде), и она бросает это исключение:

Unhandled exception at at 0x000007FEFD0D940D in histogram.exe: 
   Microsoft C++ exception: cv::Exception at memory location 0x00000000001DF720.

Как я могу исправить эту ошибку и что ее вызывает?

Код, который я использую:

int main(int argc, char *argv[])       
{ 
    ///Loading image to IplImage 
    //IplImage *img=cvLoadImage(argv[1]);
    IplImage *img;
    img = cvLoadImage("phidza.JPG",1);
    cvShowImage("Ipl",img); 
    ///converting IplImage to cv::Mat
    Mat image=cvarrToMat(img); 
    imshow("Mat",image); 
    //std::cout<<"size: " << image.size() .height<< " , "
        // << image.size().width << std::endl ;
    if (image.empty())
    {
        cout << "Image cannot be loaded..!!" << endl;
        return -1;
    }

    cvtColor(image, image, CV_BGR2GRAY); //change the color image to grayscale image

    Mat img_hist_equalized;
    equalizeHist(image, img_hist_equalized); //equalize the histogram

    //create windows
    //namedWindow("Original Image", CV_WINDOW_AUTOSIZE);
    namedWindow("output", CV_WINDOW_AUTOSIZE);

    //show the image
    //imshow("Original Image", image);
    imshow("output", img_hist_equalized);
    waitKey(0); //wait for key press
    imwrite("../output.jpg", img_hist_equalized); // save image
    //cvSaveImage("output.jpg", img);

    destroyAllWindows(); //destroy all open windows

    return 0;
} 
Теги:
opencv

1 ответ

0

Этот сегмент кода отлично подходит для меня, и результат изображения был сохранен.. Возможно, в вашем случае были повреждены двоичные файлы, поэтому лучше перестроить библиотеку opencv.

  • 0
    Спасибо ... по какой-то причине imwrite не читается в opencv2.4.5, мне пришлось построить проект с opencv2.4.8, и он работал нормально

Ещё вопросы

Сообщество Overcoder
Наверх
Меню