OpenCV未处理的异常错误
OpenCV unhandled exception error
我正在运行使用opencv函数imread()和数据结构Mat.的代码
#include <iostream>
#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
using namespace cv;
int main(){
int x;
Mat img = imread("D:/OwnResearch/photo2.jpg");
std::cout << img << std::endl;
std::cin >> x;
return 0;
}
我一直在opencvtest.exe中的0x0000000000000000处收到错误"未处理的异常":0xC0000005:执行位置0x000000000000000的访问冲突。好像什么都没装。我检查了文件的目录,它似乎是正确的。我不确定问题出在哪里。
问题可能出现在链接的DLL中。请确保使用正确的DLL——发布版本使用发布DLL,调试版本使用调试DLL。这是一个很常见的错误,所以我建议你先看看。第二,正如评论和@1nflktd的回复中所提到的,你也试图在终端中打印你的图像 首先,我不认为这确实是库中定义的,其次,我真的不认为这样做有什么意义(<-似乎我错了-新的C++接口允许直接打印cv::Mat)。如果您想打印图像的属性,您可以使用cv::Mat::row、cv::Mat::col等(请参阅此处,或者只需编写img.[TRIGGER AUTOCOMPLETE]
即可获得cv::Mat对象中可以访问的所有内容)。如果你真的想打印图像的数据(像素阵列),你需要调用cv::Mat::data,并在需要时进行相应的投射。不过要小心,因为你会得到大量的值。10x10图像的像素阵列中有100个值,100x100有10000个值,1000x1000有1000000个值。
如果DLL正常,请尝试执行以下操作:
- 使用
Mat img(X,Y,CV_XXXX,Scalar(...))
生成图像,其中X和Y是图像的维度,CV_XXXX为用于存储像素数据的存储单元(例如CV_32FC2),标量(…)表示要用于图像中所有像素的每个颜色通道的值 - 尝试显示生成的图像。不久前,我在使用OpenCV的Windows中遇到了一次糟糕的经历,因为我在Visual Studio中删除了stdafx.h,导致我传递给cv::imread(…)函数的字符串被错误解释。这是我过去真正了解问题来源的方式。如果你在Windows机器上工作,并且有这个问题,这也是一个很好的地方。如果程序生成的图像确实加载并正确显示,那么这可能就是问题所在(如果你删除了上面提到的标题)
如果您想显示您的图像,只需使用imgshow
Mat img = imread("D:/OwnResearch/photo2.jpg");
if(!img.data) // check if it is loaded
{
cout << "Could not open or find the image" << std::endl ;
return -1;
}
namedWindow("TestWindow", WINDOW_AUTOSIZE); // Create a window for display.
imshow("TestWindow", img); // Show our image inside it.
waitKey(0); // Wait for a keystroke in the window
return 0;
有关更多信息,请参阅文档
相关文章:
- 是什么导致了Unity 3D中的"错误线程异常"?
- 如何将strftime中的格式错误作为异常捕获
- 是否值得降低我的代码的可读性,以便在出现内存不足错误时提供异常安全性?
- 在缺少函数重载时抛出异常,并带有 std::variant 而不是编译时错误
- C++中"覆盖功能的异常规范比基本版本更宽松"的奇怪错误
- [longjmp/setjmp]c++ 相同的代码窗口有异常 Linux 没有错误并且运行良好
- 发生此错误:在0x0F2BFB7C(基于.dll)时引发异常 尝试更改大小是问题吗?
- VisualC++ 2010 有没有办法找出有关未处理异常错误的更多详细信息
- 引发异常:读取访问冲突.**此**0x40错误
- 从 C# 调用 C++ DLib 会导致错误的分配异常
- 错误 : 异常 : 引发未处理的异常: 读取访问冲突.0xDDDDDDDD临时温度
- Windows错误:异常:使用从C++到Python的ctypes创建DLL时出现访问冲突或Windows错误193
- C++执行期间的类成员函数错误/异常处理
- 无法捕获C++长度错误异常
- 内存读/写错误异常
- 字符串转换错误:异常还是错误代码
- 类中的错误/异常捕获
- 在库中引发逻辑错误异常或中止
- POCO C++SAX解析器:如果xml文档编码是ANSI,那么下一条语句不是读取并抛出编码错误异常
- 捕获 Segfault 或任何其他错误/异常/信号C++例如在 Java 中捕获异常