1.测试程序如下:
#include<iostream>
#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
using namespace cv;
int main()
{
// 读入一张图片(游戏原画)
//Mat img = imread("E://ceshi//11.jpg");
//Mat img = imread("E:\\ceshi\\11.jpg");
Mat img = imread("11.jpg");
// 创建一个名为 "游戏原画"窗口
namedWindow("游戏原画");
// 在窗口中显示游戏原画
imshow("游戏原画", img);
// 等待50000 ms后窗口自动关闭
waitKey(50000);
}
2.第一次尝试运行的时候出现出现过如下问题:
old DIB in res XXX.ico; pass it through SDKPAINT
这是因为以前下载过VC6++,VC6无法识别3字节真彩图,只支持256色。所以把VC6卸载后问题就不见了。
如果还有人用VC6.0出现这个问题,可以升级软件,用VC7以上就好了,也可以用软件如IconWorkshop把256色以上的图删掉,或者换成256色的图试试
3.后来出现丢失word.dll问题,就把BIN中的3个dll放到C:\\WINDOW\\SYSTEM32或者C\\WINDOW\\SYSWOW64中即可
4.之后遇到了有未经处理的异常: Microsoft C++ 异常: 内存位置 0x0014f4f8 处的 cv::Exception这样的类似问题
后来发现是图片的地址不对。因为程序中要是用相对路径,要把图片和.cpp文件放一起,即放到工程目录下。
绝对路径的话,imread无法识别 \ ,要换成 \\ , // , / 都可以。
具体文章可参见:
本文由@星沉阁冰不语出品,转载请注明作者和出处。
文章链接:http://blog.csdn.net/xingchenbingbuyu/article/details/51375078
微博:http://weibo.com/xingchenbing
崩溃的时候在弹出的对话框按相应按钮进入调试,按Alt+7键查看Call Stack即“调用堆栈”里面从上到下列出的对应从里层到外层的函数调用历史。双击某一行可将光标定位到此次调用的源代码或汇编指令处,看不懂时双击下一行,直到能看懂为止。
或者:1.看看你的配置设置对了没有,比如链接器里面的d的问题;
2.更改一下调试方式,比如debug换成release模式
3.图片格式对了嘛?拓展名有没有,写对没有。
4.图片是不是太大了,所以显示不出来。