首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法读取带有opencv2.3 imread的图像

无法读取带有opencv2.3 imread的图像
EN

Stack Overflow用户
提问于 2011-08-10 20:58:09
回答 7查看 8.7K关注 0票数 1

您好,我正在尝试使用opencv的imread函数读取图像,如链接(http://opencv.itseez.com/doc/tutorials/introduction/display_image/display_image.html#display-image)所示。我有64位Windows7的VS2010。每次我尝试时都会收到错误信息“没有图像数据”,但是我想读取的图像与代码在同一个文件夹中。有没有人可以教我如何使用imread功能读取图片?我的代码如下:

代码语言:javascript
复制
#include "stdafx.h"
#include <cv.h>
#include <highgui.h>
using namespace cv;

int _tmain(int argc, _TCHAR* argv[])
{
    Mat image;  
    image = imread("al.jpg");
    if(argc != 2 || !image.data )
    {
        printf("no image data \n");
        return -1;
    }
    namedWindow("Display Image", CV_WINDOW_AUTOSIZE);
    imshow("Display Image", image);
    waitKey(0);
    return 0;
}
EN

回答 7

Stack Overflow用户

发布于 2012-07-31 12:15:07

您可以使用以下命令加载图像

代码语言:javascript
复制
IplImage *img=cvLoadImage("Image_Name);

然后您可以使用以下命令将其转换为cv::Mat,

代码语言:javascript
复制
Mat mat(img);
票数 5
EN

Stack Overflow用户

发布于 2011-08-11 01:18:10

我在使用VS2005和OpenCV 2.3的WinXP上也遇到了同样的问题。OpenCV的C++接口似乎在Windows上不能很好地工作。我还遇到了返回NULL数据的imread()的问题。

我用OpenCV的C接口解决了这个问题。有关更多信息,请查看Reading and Writing Images and Video

票数 2
EN

Stack Overflow用户

发布于 2014-04-22 16:50:41

我遇到了和你一样的问题。OpenCV2.3的C++接口不起作用,一些函数必须转换为C版本。

但最终,我找到了问题所在。

这是因为当您使用CMake 编译OpenCV源代码时,项目属性与您当前的项目属性不同。(可能是您的OpenCV的dll和lib是从互联网上下载的,这些库可能是用其他wierd属性编译的。)

所以我检查了我的CMake生成的OpenCV源代码项目,我找到了项目的属性,C/C++-->代码生成,运行时库是多线程调试DLL(/MDd)。

然后,我在当前项目中更改了相应的属性,我的项目运行良好。同时,也很好地解决了OpenCV的另一个C++接口问题。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7011125

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档