使用 opencv 2.4.3 在 Visual c++ 中读/写图像时出错
Posted
技术标签:
【中文标题】使用 opencv 2.4.3 在 Visual c++ 中读/写图像时出错【英文标题】:Error while read/write an image in Visual c++ using opencv 2.4.3 【发布时间】:2013-12-30 19:34:00 【问题描述】:我已按照使用 youtube 视频安装 opencv 的说明进行操作。 第一个程序运行良好。我正在使用 Visual Studio 2010 和 opencv 2.4.4
#include<opencv\cv.h>
#include<opencv\highgui.h>
using namespace cv;
int main()
Mat image ;//=imread("C:\Users\Jango\Pictures\deepika-padukone-97a_4.jpg");
VideoCapture cap;
cap.open(0);
namedWindow("window",1);
while(1)
cap>>image;
imshow("window",image);
waitKey(33);
视频窗口正在打开,我也可以在网络摄像头上看到视频。但是当我尝试以下程序时,我得到了很多错误(图像路径是正确的)
#include<opencv\cv.h>
#include<opencv\highgui.h>
using namespace cv;
int main()
Mat image =imread("C:\Users\Jango\Pictures\deepika-padukone-97a_4.jpg");
//VideoCapture cap;
//cap.open(0);
namedWindow("window",1);
imshow("window",image);
waitKey(33);
return 1;
错误是
'mynewproject.exe':已加载 'C:\Users\Jango\Documents\Visual Studio 2010\Projects\projects_opencv\mynewproject\Debug\mynewproject.exe',已加载符号。 “mynewproject.exe”:已加载“C:\Windows\SysWOW64\ntdll.dll”,已加载符号(已删除源信息)。 “mynewproject.exe”:已加载“C:\Windows\SysWOW64\kernel32.dll”,已加载符号(已删除源信息)。 “mynewproject.exe”:已加载“C:\Windows\SysWOW64\KernelBase.dll”,已加载符号(已删除源信息)。 “mynewproject.exe”:已加载“C:\Users\Jango\Documents\Visual Studio 2010\Projects\projects_opencv\mynewproject\Debug\opencv_core244d.dll”,找不到或打开 PDB 文件 “mynewproject.exe”:已加载“C:\Windows\SysWOW64\msvcp100d.dll”,已加载符号。 “mynewproject.exe”:已加载“C:\Windows\SysWOW64\msvcr100d.dll”,已加载符号。 “mynewproject.exe”:已加载“C:\Users\Jango\Documents\Visual Studio 2010\Projects\projects_opencv\mynewproject\Debug\opencv_highgui244d.dll”,找不到或打开 PDB 文件 “mynewproject.exe”:已加载“C:\Windows\SysWOW64\user32.dll”,已加载符号(已删除源信息)。 “mynewproject.exe”:已加载“C:\Windows\SysWOW64\gdi32.dll”,已加载符号(已删除源信息)。 “mynewproject.exe”:已加载“C:\Windows\SysWOW64\lpk.dll”,已加载符号(已删除源信息)。 “mynewproject.exe”:已加载“C:\Windows\SysWOW64\usp10.dll”,已加载符号(已删除源信息)。 “mynewproject.exe”:已加载“C:\Windows\SysWOW64\msvcrt.dll”,已加载符号(已删除源信息)。 “mynewproject.exe”:已加载“C:\Windows\SysWOW64\advapi32.dll”,找不到或打开 PDB 文件 “mynewproject.exe”:已加载“C:\Windows\SysWOW64\sechost.dll”,找不到或打开 PDB 文件 “mynewproject.exe”:已加载“C:\Windows\SysWOW64\rpcrt4.dll”,找不到或打开 PDB 文件 “mynewproject.exe”:已加载“C:\Windows\SysWOW64\sspicli.dll”,找不到或打开 PDB 文件 “mynewproject.exe”:已加载“C:\Windows\SysWOW64\cryptbase.dll”,找不到或打开 PDB 文件 “mynewproject.exe”:已加载“C:\Windows\SysWOW64\ole32.dll”,找不到或打开 PDB 文件 “mynewproject.exe”:已加载“C:\Windows\SysWOW64\oleaut32.dll”,找不到或打开 PDB 文件 “mynewproject.exe”:已加载“C:\Windows\winsxs\x86_microsoft.windows.common-controls_6595b64144ccf1df_5.82.7601.18201_none_ec80f00e8593ece5\comctl32.dll”,找不到或打开 PDB 文件 “mynewproject.exe”:已加载“C:\Windows\SysWOW64\avifil32.dll”,找不到或打开 PDB 文件 “mynewproject.exe”:已加载“C:\Windows\SysWOW64\winmm.dll”,找不到或打开 PDB 文件 “mynewproject.exe”:已加载“C:\Windows\SysWOW64\msacm32.dll”,无法找到或打开 PDB 文件 “mynewproject.exe”:已加载“C:\Windows\SysWOW64\msvfw32.dll”,找不到或打开 PDB 文件 “mynewproject.exe”:已加载“C:\Windows\SysWOW64\shell32.dll”,找不到或打开 PDB 文件 “mynewproject.exe”:已加载“C:\Windows\SysWOW64\shlwapi.dll”,找不到或打开 PDB 文件 “mynewproject.exe”:已加载“C:\Windows\SysWOW64\avicap32.dll”,找不到或打开 PDB 文件 “mynewproject.exe”:已加载“C:\Windows\SysWOW64\version.dll”,找不到或打开 PDB 文件 “mynewproject.exe”:已加载“C:\Windows\SysWOW64\imm32.dll”,找不到或打开 PDB 文件 “mynewproject.exe”:已加载“C:\Windows\SysWOW64\msctf.dll”,找不到或打开 PDB 文件 “mynewproject.exe”:已加载“C:\Windows\SysWOW64\nvinit.dll”,找不到或打开 PDB 文件 “mynewproject.exe”:已加载“C:\Windows\SysWOW64\uxtheme.dll”,找不到或打开 PDB 文件 “mynewproject.exe”:已加载“C:\Program Files (x86)\Lenovo\Onekey Theater\ActiveDetect32.dll”,找不到或打开 PDB 文件 “mynewproject.exe”:已加载“C:\Program Files (x86)\Lenovo\Onekey Theater\WindowsApiHookDll32.dll”,找不到或打开 PDB 文件 线程“Win32 线程”(0x684) 已退出,代码为 0 (0x0)。 “mynewproject.exe”:已加载“C:\Windows\SysWOW64\dwmapi.dll”,找不到或打开 PDB 文件 “mynewproject.exe”:已加载“C:\Program Files\Lenovo\Bluetooth Software\syswow64\BtMmHook.dll”,找不到或打开 PDB 文件 “mynewproject.exe”:已加载“C:\Windows\SysWOW64\psapi.dll”,找不到或打开 PDB 文件 mynewproject.exe 中 0x7712c41f (KernelBase.dll) 的第一次机会异常:Microsoft C++ 异常:cv::Exception at memory location 0x0045e56c.. mynewproject.exe 中 0x7712c41f (KernelBase.dll) 处未处理的异常:Microsoft C++ 异常:cv::Exception at memory location 0x0045e56c..
以下是截图
【问题讨论】:
忽略 PDB 警告,但修复您的图像路径:C:/Users/Jango/Pictures/deepika-padukone-97a_4.jpg 谢谢@berak 图像路径是正确的,我已经检查过了。我已经编辑了问题n有一些快照,看看吧。 谢谢,我的正斜杠出错了。已修复,谢谢 【参考方案1】:我不知道这是否是唯一的问题,但首先要检查的是行:
Mat image =imread("C:\Users\Jango\Pictures\deepika-padukone-97a_4.jpg");
应该是
Mat image =imread("C:\\Users\\Jango\\Pictures\\deepika-padukone-97a_4.jpg");
【讨论】:
以上是关于使用 opencv 2.4.3 在 Visual c++ 中读/写图像时出错的主要内容,如果未能解决你的问题,请参考以下文章
设置 OpenCV 2.4.3 和 Microsoft Visual Studio 2012 (Win8 x64)
OpenCV学习笔记04:在Visual Studio上使用OpenCV4.5.5
在 Visual Studio 2015 中使用 Cinder-OpenCV
为啥在 Visual Studio 的 OpenCV 项目中使用 /MT 时仍然需要 dll?