簡體   English   中英

7 行代碼行不通...Conv.exe 中 0x76F643D2 處未處理的異常:Microsoft C++ 異常:cv::Exception 位於 memory 位置 0x008EDDD8

[英]7 lines of code won't work... Unhandled exception at 0x76F643D2 in Conv.exe: Microsoft C++ exception: cv::Exception at memory location 0x008EDDD8

Mat oImg, test;
test = imread(fileName, CV_LOAD_IMAGE_GRAYSCALE);

Mat gray;
//cvtColor(gray, test, CV_RGB2GRAY);
gray = test.clone();

adaptiveThreshold(oImg, gray, 255, ADAPTIVE_THRESH_GAUSSIAN_C, CV_THRESH_BINARY, 7, 15);

cv::imshow("original", gray);
cv::imshow("gaussian", oImg);

這給我以下錯誤:

Unhandled exception... cv::Exception at memory location 0x008EDDD8.

我不知道我做錯了什么。這花了我太多時間,我們將不勝感激。

從您的示例中獲取的代碼(有少量代碼更改)。

#include <opencv2/imgproc.hpp>
#include <opencv2/highgui.hpp>
#include <iostream>

int main()
{
     cv::Mat oImg, test;
     test = cv::imread("Snap.JPG", CV_LOAD_IMAGE_GRAYSCALE);

     cv::Mat gray;
     gray = test.clone();

     oImg = gray.clone();    // You need to do this to allocate space for oImg

     if (oImg.data == gray.data)
         std::cout << "Points to data stored in gray\n";
     else
         std::cout << "oImg has its own copy of data\n";

     adaptiveThreshold(oImg, gray, 255, cv::ADAPTIVE_THRESH_GAUSSIAN_C, CV_THRESH_BINARY, 7, 15);

     cv::imshow("original", gray);
     cv::imshow("gaussian", oImg);

     cv::waitKey(0);
     cv::destroyAllWindows();

     return 0;
}

您需要了解Mat object 的工作原理,詳情請見此處

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM