原文:opencv imread

这几天看一个鸟程序,大量使用opencv,无奈之下略微学习一下。

从网上找了个最简单的程序,读取并显示图片,竟然不能完成显示任务。然经努力,最终解决问题。

代码如下:

#include "cv.h"
#include "highgui.h"
#include <string>

#pragma comment(lib, "cv210.lib")
#pragma comment(lib, "cxcore210.lib")
#pragma comment(lib, "highgui210.lib")
#pragma comment(lib, "cvaux210.lib")

using namespace cv;        // 下面的所有cv 相关类型不用加上前缀了
using namespace std;

int main(int argc, char* argv[])
{
 string file_name = "girl2.jpg";
 Mat img = imread(file_name);    // 声明Mat 变量并调入照片
 if(!img.data)        // 判断图片调入是否成功
  return -1;        // 调入图片失败则退出

namedWindow("girl", CV_WINDOW_AUTOSIZE); // 创建窗口,并确定其为大小不可变类型窗口
 imshow("girl", img);      // 显示图片。如果你不介意窗口大小可变,可以直接注释掉上一句。因为imshow 可以直接创建窗口
 waitKey();         // 等待按键

return 0;
}

运行程序,发现图片不显示。

调试发现

if(!img.data) // 判断图片调入是否成功
return -1; // 调入图片失败则退出

又从网上找了相同功能的代码如下:

int main( int argc, char** argv )
{
    IplImage* pImg;      // 声明IplImage指针
 
    // 载入图像
    if( argc == 2 && (pImg = cvLoadImage( argv[1], 1)) != 0 )
    {
        cvNamedWindow( "Image", 1 ); // 创建窗口
        cvShowImage( "Image", pImg ); // 显示图像
 
        cvWaitKey(0);     // 等待按键
 
        cvDestroyWindow( "Image" );  // 销毁窗口
        cvReleaseImage( &pImg );  // 释放图像
        return 0;
    }
 
    return -1;
}

能完成任务。

继续调不能运行的代码。

怀疑文件路径有问题,改成绝对路径,依然不行。怀疑字符串问题,改成定义string,还是不行。

忽然想起试一下Release 版本,竟然能行。

乃想到可能Release版的库只能用于Release 版程序。

改成

#pragma comment(lib, "cv210d.lib")
#pragma comment(lib, "cxcore210d.lib")
#pragma comment(lib, "highgui210d.lib")
#pragma comment(lib, "cvaux210d.lib")

则可用于Debug 版程序,即对imread 这个函数而言,Debug版的库只能用于Debug版的程序。

结果如下:

opencv imread相关推荐

  1. python opencv imread()函数 (从文件加载图像)

    def imread(filename, flags=None): # real signature unknown; restored from __doc__"""i ...

  2. python opencv imread(filename, flags=None) 读取图像 flags cv::ImreadModes 参数上哪看去?

    在调用opencv的imread(filename, flags=None)函数时,后面有个flags=None参数,但打开文档轻描淡写,不知该参数上哪找去,用全局搜索也搜不到,莫非要到官网查?(擦汗 ...

  3. OpenCV imread读取图片,imshow展示图片,出现cv:Exception at memory location异常

    OpenCV imread读取图片,imshow展示图片,出现cv:Exception at memory location异常 参考文章: (1)OpenCV imread读取图片,imshow展示 ...

  4. opencv imread后做resizie_opencv第1课-加载、修改、保存图像

    (非原创,看课程自己做的笔记,防丢失放到个人空间的) 第1课-加载.修改.保存图像 加载图像(cv::imread) 修改图像(cv::cvtColor) 保存图像(cv::imwrite) 代码演示 ...

  5. OpenCV imread 图片读取

    函数原型 CV_EXPORTS_W Mat imread( const String& filename, int flags = IMREAD_COLOR ); 参数说明 第一个参数是图片路 ...

  6. OPenCV imread()函数第二个参数详解

    在OpenCV官方文档中imread()函数的原型如下: Mat imread(const string& filename, int flags = 1); 第一个参数filename是我们 ...

  7. matplotlib.pyplot.imshow opencv.imread 图片显示 图片读取

    # opencv中图像以BGR通道顺序存储     # Matplotlib以RGB通道顺序存储     # 2种解决方式:     # 1. import cv2 as cv raw = cv.im ...

  8. c++ opencv imread函数浅解

    opencv中imread函数 作用 在opencv中,通过imread函数从计算机文件目录下获取图片. 头文件 要使用imread函数,需在配置好opencv的项目下包含头文件. #include& ...

  9. python opencv imread()函数,关于:灰度图(二维数组图),彩色图(三维数组图)

    使用函数cv2.imread(filepath,flags)读入一副图片 filepath:要读入图片的完整路径 flags:读入图片的标志 cv2.IMREAD_COLOR:默认参数,读入一副彩色图 ...

最新文章

  1. 11 款可替代 top 命令的工具!
  2. squid ldap认证(AD)
  3. matlab中boxplot函数的参数设置_matlab中boxplot字体大小设置
  4. 机器人从计算机应用领域看,人的素质差异,本质地不在于他们即存知识信息量的差异,而在于他们思维能力的差异。( )...
  5. 16.1数组为什么特殊
  6. Android之error: ‘const struct JNINativeInterface‘ has no member named ‘callVoidMethod‘
  7. java 关闭串口_java – 打开和关闭串行端口
  8. htmlspecialchars() 函数过滤XSS的问题
  9. 制作.rpgsave存档修改器
  10. ddk开发 c语言,ddk_helloWDM_原代码是网上高手的杰作
  11. 【小技巧】2345——劫持IE浏览器主页
  12. Android11(R) system_ext 分区 system_ext_specific 属性
  13. C语言实现多人坦克大战
  14. 网课答题查询助手(免费)
  15. 使用spark-submit工具提交Spark作业
  16. 记war exploded部署不成功
  17. HQL的执行顺序(这是重点)
  18. 楼市十大卖楼花招曝光
  19. 均州古城(走遍中国08.10.27)
  20. (ICLR-2019)DARTS:可微分架构搜索

热门文章

  1. (二)Python 学习第二天--爬5068动漫图库小案例
  2. windows 下XAMPP 使用Nginx替代apache作为服务器
  3. Xamarin.Forms教程Android SDK工具下载安装
  4. CEMAPI实战攻略(四)——发送短消息
  5. 用户强烈反对产品改动,如何应对?
  6. BUAA-OO-第三单元总结
  7. WPF入门教程系列三——Application介绍(续)
  8. the graphics window has detected an error and is not able to ini
  9. [csdn markdown]使用摘记一源码高亮及图片上传和链接
  10. 用python读取stata文件及写入and注意事项