今天在用OpenCV实验Image Pyramid的时候发现一个奇怪的问题,就是利用C++函数imread读取图片的时候返回的结果总是空,而利用C函数cvLoadImage时却能读取到图像。代码如下:

//环境:VS2010 + OpenCV 2.3.1

#include "stdafx.h"

#include

#include

#include

#include

#include

using namespace cv;

Mat src, dst, tmp;

char* window_name = "Pyramids Demo";

int _tmain(int argc, _TCHAR* argv[])

{

printf("\n Zoom In-Out demo \n");

printf("-------------------- \n");

printf("*[u]-> Zoom in \n");

printf("*[d]-> Zoom out \n");

printf("*[ESC]-> Close program \n\n");

src = imread("D:\\fruits.jpg");

if(!src.data)

{

printf("No data!--Exiting the program \n");

return -1;

}

tmp = src;

dst = tmp;

namedWindow(window_name,CV_WINDOW_AUTOSIZE);

imshow(window_name,dst);

while(true)

{

int c;

c = waitKey(10);

if((char)c == 27)

{

break;

}

if((char)c == 'u')

{

pyrUp(tmp,dst,Size(tmp.cols * 2,tmp.rows * 2));

printf("** Zoom In:Image x 2\n");

}

else if((char)c == 'd')

{

pyrDown(tmp,dst,Size(tmp.cols / 2,tmp.rows / 2));

printf("**Zoom Out:Image / 2\n");

}

imshow(window_name,dst);

tmp = dst;

}

return 0;

}

程序很简单,就是直接调用Imgproc中的两个C++函数pyrUp和pyrDown来实现图像金字塔,程序的详细解释可参见//www.jb51.net/article/108378.htm。但在实现的过程中发现imread始终读取不了图像数据和cvLoadImage却可以。几经考证,发现的确是由于库关联的问题。也就是在Debug模式下应该选择带'd'的lib,在Release模式下就选择不带'd'的lib。而实际我们在配置OpenCV环境的时候往往图方便将Debug和Release的目录都一起加了进去,再修改起来也比较麻烦。所以这时候最简单的办法就是在程序的开始加上:

#pragma comment(lib,"opencv_highgui231d.lib")

来告诉程序将采用Debug版本的库函数。

实验结果如下:

以上所述是小编给大家介绍的OpenCV中C++函数imread读取图片的问题及解决方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对我们网站的支持!

本文标题: OpenCV中C++函数imread读取图片的问题及解决方法

本文地址: http://www.cppcns.com/ruanjian/c/182066.html

c++imread 函数_OpenCV中C++函数imread读取图片的问题及解决方法相关推荐

  1. html中text函数,Excel中text函数的使用方法

    说到Excel,相信大家都再熟悉不过了,但说到Excel中text函数的使用方法,可能很多人都不太熟悉,下面随学习啦小编一起看看吧. Excel中text函数的使用方法 首先解释一下text函数的基本 ...

  2. linux 内核 fget,fgets函数 linux中fgets函数怎么用

    一个函数该如何使用?我们最先要了解的就是这个函数的语法以及具体的含义是什么,所以今天我们就来看一看fgets函数在实际的运用过程当中是如何使用的,希望能给大家带来一定的帮助. fgets函数--lin ...

  3. mysql中sign函数_Oracle中sign函数和decode函数的使用

    在逻辑编程中,经常用到If ndash; Then ndash;Else 进行逻辑判断.在DECODE的语法中,实际上就是这样的逻辑处理过程.它的语法 1.比较大小函数SIGN sign(x)或者Si ...

  4. php 正则报错,PHP正则替换函数preg_replace()报错:Notice Use of undefined constant的解决方法分析...

    本文实例讲述了PHP正则替换函数preg_replace()报错:Notice Use of undefined constant的解决方法.分享给大家供大家参考,具体如下: 环境错误级别:error ...

  5. JQuery中使用Ajax赋值给全局变量失败异常的解决方法,jqueryajax

    我们在用JQuery的Ajax从后台提取数据后想把它赋值给全局变量,但是却怎么都赋不进,为什么呢? 原因其实很简单,我们用的Ajax是异步操作,也就是说在你赋值的时候数据还没提取出来,你当然赋不进去, ...

  6. mysql5.7.20 sql mode_MySQL5.7中的sql_mode默认值带来的坑及解决方法

    在正常项目开发过程中,如果MySQL版本从5.6升级到5.7版本.作为DBA在考虑数据库版本升级带来的影响时,一般会有几个注意点: sql_mode optimizer_switch 本文主要内容是M ...

  7. python中json与str转换和出现KeyError的解决方法

    python中json与str转换和出现KeyError的解决方法 json转str str转json KeyError的解决方法 json转str json格式的数据其实就是dict类型的数据,如图 ...

  8. hp打印机无法与计算机,电脑中安装HP打印机后重启无法打印的解决方法

    电脑中安装HP打印机后重启无法打印怎么办?近来不少朋友都向小编咨询了这个问题.HP有一个型号重启以后无法打印,今天系统城小编就要在这里给大家介绍一个方法可以解决这个问题. 具体方法如下: 1.这是第一 ...

  9. Dockerfile中npm中Error: could not get uid/gid问题的解决方法

    Dockerfile中npm中Error: could not get uid/gid问题的解决方法 参考文章: (1)Dockerfile中npm中Error: could not get uid/ ...

最新文章

  1. 寒冬 winter:代码无捷径,只怕有心人
  2. 揭露男生的真实心理年龄测试软件,心理年龄测试
  3. LeetCode 2176. 统计数组中相等且可以被整除的数对
  4. 双系统引导修复失败进不了系统_教你安装双系统,win7+win10
  5. 比尔·盖茨录视频祝大家“新春快乐
  6. PyCharm: Simplify chained comparison
  7. Leetcode961. N-Repeated Element in Size 2N Array重复N次的元素
  8. Docker视频教程 之 熟悉docker-machine及docker常用命令 - 知识林
  9. Ignite-初识Ignite
  10. Cadence Orcad Capture主要工作窗口介绍
  11. 【数学建模】基于matlab GUI平行停车模拟仿真【含Matlab源码 1877期】
  12. 高级产品经理十八种能力
  13. 数据脱敏为何如此重要?
  14. 新东方老师谈如何学英语
  15. 私有文件服务器,私有云文件服务器
  16. SwitchyOmega使用
  17. PHP 简单案例[3]
  18. 元宇宙之NFT行业分析:中国数字藏品行业有望走向规范化、差异化
  19. Scrapy Python爬虫实战:抓取知乎问题下所有回答!
  20. 网络攻击图系统的设计与实现 文档+PPT+代码程序

热门文章

  1. Web前端开发精品课HTML CSS JavaScript基础教程CSS部分知识点总结
  2. 【FFMPEG】基于RTP的H264视频数据打包解包类
  3. 尚硅谷MySQL课后练习题笔记
  4. 自用PTA题目记录0025
  5. 刀钝石上磨,人钝世上磨!
  6. 熟悉VBA 但是不熟悉 xlwings 怎么办,可以调用 api 操作,如 xlwings 取消自动换行,xlwings选中某一列,xlwings获取最大行号,行标,最大列号,列标等等
  7. java中abstract是什么_java关键字abstract
  8. 华为测试岗,却因为这个原因被刷了...
  9. 半导体视觉检测设备的应用
  10. 通达进销存管理系统操作说明书