OpenCV中C++函数imread读取图片的问题_c++ opencv imread读写图片demo-程序员宅基地

技术标签: opencv  

http://www.cnblogs.com/eyeszjwang/articles/2418354.html

#include "stdafx.h"

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


#include <math.h>
#include <stdlib.h>
#include <stdio.h>

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来实现图像金字塔,程序的详细解释可参见http://www.opencv.org.cn/opencvdoc/2.3.2/html/doc/tutorials/imgproc/pyramids/pyramids.html。但在实现的过程中发现imread始终读取不了图像数据和cvLoadImage却可以。几经考证,发现的确是由于库关联的问题。也就是在Debug模式下应该选择带'd'的lib,在Release模式下就选择不带'd'的lib。而实际我们在配置OpenCV环境的时候往往图方便将Debug和Release的目录都一起加了进去,再修改起来也比较麻烦。所以这时候最简单的办法就是在程序的开始加上:

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

来告诉程序将采用Debug版本的库函数。
  实验结果如下:

 ( x 2) (x 1)(x 0.5)(x 0.25)

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/chengde6896383/article/details/82700156

智能推荐

李宏毅机器学习系列-强化学习之Q-Learning小改进_qlearning算法改进-程序员宅基地

文章浏览阅读1.4k次。李宏毅机器学习系列-强化学习之Q-Learning小改进Double DQNDueling DQNPrioritized ReplyMulti-stepNoisy NetDistributional Q-functionRainbow总结Double DQN我们在实验中发现Q的值是被高估的,比如下图,红色的曲线是DQN的估计值,直线是Q的DQN的真实值,很明显估计值比真实值高很多,然后我们又用..._qlearning算法改进

Springboot居民社区疫情防控管理系统-计算机毕设 附源码99137_疫情业务防控管理系统-程序员宅基地

文章浏览阅读409次。对于系统的安全性的第一关,就是用户想要进入系统,必须通过登录窗口,输入自己的登录信息才可以进行登录,用户输入的信息准确无误后才可以进入到操作系统界面,进行功能模块的相对应操作,如果用户输入的信息不正确,则窗口出现提示框,用户登录失败,返回到第一步进行重新输入对于居民社区疫情防控管理系统,需要随时添加所需要的数据信息,对于用户添加信息,需要根据添加界面,根据选框的内容进行填写所要添加的数据信息,信息输入完成后判断数据信息是否符合要求,符合要求则添加完成,用户所添加的信息不符合要求,则需要返回到第一步,重新输_疫情业务防控管理系统

IDEA如何快速搭建Java开发环境,IntelliJ IDEA mac新手入门-程序员宅基地

文章浏览阅读582次。作为IntelliJ IDEA mac新手,IDEA如何快速搭建Java开发环境呢?今天小编就给大家带来了IntelliJ IDEA mac使用教程,想知道IDEA如何快速搭建Java开发环境?全局JDK(默认配置)具体步骤:顶部工具栏 File ->Other Settins -> Default Project Structure -> SDKs -> JDK示..._intellij 快速javabean mac

cstl -- c语言编写通用数据结构和常用算法库(模仿SGI STL)-程序员宅基地

文章浏览阅读5k次。cstl是使用C语言编写的一个通用的数据结构和常用的算法库,它模忙SGI STL的接口和实现,支持vector,list,deque等等常用的数据结构,同时还支持排序,查找,划分等常用的算法,此外cstl也包含迭代器的类型,它作为容器和算法之间的桥梁。cstl为C语言编程中的数据管理提供了便利。 在使用C语言编程的过程中,很多工作都是在管理数据,很多时候我都是在一遍又一遍的开发通用的数据结构如list,我想C语言中如果有一个像的STL那样的库那就节省了很多的时间和_cstl

LINUX IDL8.4安装 那些坑!_ubuntu idl8.4-程序员宅基地

文章浏览阅读1.2w次,点赞8次,收藏23次。一.下载IDLhttp://ftpstatus.com/site_files.php?name=ftp.lowell.eduIDL版本: idl84envi52linux.x86_64.tar.gzLINUX : Centos 6.10二.安装IDL1.创建安装目录,终端输入sudo mkdir /usr/local/exelis2.将idl82linux.x86_64.tar...._ubuntu idl8.4

访问mega网盘 的方法_mega网盘登录不上-程序员宅基地

文章浏览阅读10w+次,点赞10次,收藏47次。目前默认状态下Mega是被和谐的。解决的思路是修改hosts文件。hosts 文件的位置Windows C:\Windows\System32\drivers\etc\hostsLinux /ect/hosts修改方式:加入以下解析#configuration for Mega.nz1.216.147.135 eu.api.mega.co.nz154.53...._mega网盘登录不上

随便推点

angularjs在js代码中改变了model的值,但是页面上没有变化_angular重新编译后界面没有变化-程序员宅基地

文章浏览阅读7.5k次。1.场景重现在controller中我们先默认给定model的值,然后调用了一个外部函数改变这个model的值,页面上没有变化,还是显示默认值。2.原因分析AngularJS只会关心在AngularJS的执行上下文中的发生的数据模型(model)的变化(比如,改变数据的代码在$apply()里面)。AngularJS内建的指令也会自动触发$digest循环所以任何数据模型(model)_angular重新编译后界面没有变化

正定矩阵的定义与性质-程序员宅基地

文章浏览阅读3.1w次,点赞5次,收藏20次。同济大学线性代数第五版(咱们的线性代数教材)p133有关于正定矩阵的介绍在线性代数里,正定矩阵 (英文:positive definite matrix) 有时会简称为正定阵。广义定义设M是n阶方阵,如果对任何非零向量z,都有 z'Mz > 0,其中z' 表示z的转置,就称M正定矩阵。例如:B为n阶矩阵,E为单位矩阵,a为正实数。aE+B在a充分大时,aE+B为正定矩阵。(B必须为_正定矩阵的定义

VNC Viewer远程Mac共享桌面_vnc viewer链接mac会显示两个桌面-程序员宅基地

文章浏览阅读7.4k次。Mac电脑操作:打开设置,选择共享选择屏幕共享设置屏幕共享Windows安装VNC Viewer远程软件安装包下载链接:https://www.realvnc.com/en/connect/download/viewer/windows/而且支持多平台VNC Viewer安装过程在这就省略了输入Mac电脑的IP地址进行连接输入Mac电脑的解屏密码,进行验证..._vnc viewer链接mac会显示两个桌面

MyBatisPlus系列十:公共字段自动填充_mybatisplus种metaobjecthandler的insertfill方法-程序员宅基地

文章浏览阅读4.4k次。元数据处理器接口:com.baomidou.mybatisplus.mapper.MetaObjectHandler insertFill(MetaObject metaObject) updateFill(MetaObject metaObject)  metaobject: 元对象。是 Mybatis 提供的一个用于更加方便,更加优雅的访问对象的属性,给对象的属性设置值 的一..._mybatisplus种metaobjecthandler的insertfill方法

python-读写CSV数据-程序员宅基地

文章浏览阅读712次。上面的row我们获取的是一个数组,这样想要拿到指定列的值,我们需要使用row[0],row[1]这样,容易造成混淆。但是上述方法只适用于headers的值都是合法标识符,如果不是,需要使用下划线或者其它占位符代替。也可以使用如下方式将csv数据读取为OrderedDict。我们可以考虑使用命名元组。

python访问共享文件夹_python – 通过linux机器打开Windows共享文件夹-程序员宅基地

文章浏览阅读1.7k次。我在Ubuntu上使用python 2.5,并且在同一网络中有一台名为machine1的机器.该文件夹是共享的.如何在该机器的特定文件夹中获取文件?我试过了,没有成功:urllib.urlopen('\\machine1\folder\file.txt')解决方法:Linux有一个名为smbmount的utiliy,我相信可以在smbutils包中找到它.这是一个命令行实用程序,它将Windows..._linux python读取共享文件夹

推荐文章

热门文章

相关标签