平台搭建就摸了一整天时间,真的是、、、不说了,最后我选择的是 opencv3.0(2015/06/04)  + win7 + vs2012   注意opencv的版本不同导入的库文件是不一样的,所以请慎重选择版本!

下载安装就不说了,很简单,这里只说一下如何导入库文件。其实可以把文件直接编译到minGW里去,可是奈何总是出错不得不作罢。所以还是老老实实导入吧,opencv有两个文件夹,这里只会用到build这个,首先打开build/x86/vc11/lib 和   build/x86/vc11/staticlib  (注意:86对应32位程序 64对应64位程序, vc11对应vs2012 vc12对应vs2013), 这两个文件夹下有很多的库文件(后缀名是.lib的) 找笔找纸(总之随便你怎么干) 把文件名全部记下来包括后缀名,这里需要注意把,把名字以d结尾的和非d结尾的分开写,对应不同的开发版本,就像这样:

打开VS,新建一个win32控制台应用程序,右击项目名称,在弹出来的菜单中选择属性,首先左上角配置选项卡选择DEBUG,在右侧配置属性中选择vc++目录,然后看右边,选择包含目录点击编辑它,加入这三个路径 E:\windows opencv\opencv\build\include;E:\windows opencv\opencv\build\include\opencv;E:\windows opencv\opencv\build\include\opencv2;确定后,再选择库目录点击编辑它,加入这两个路径E:\windows opencv\opencv\build\x86\vc11\lib;E:\windows opencv\opencv\build\x86\vc11\staticlib;然后再看左边选择连接器(linker)下的输入(input),同样编辑右边,把刚才记下来的那两堆文件名中以d结尾的都复制进去,确定。下一步,再看左上角配置选项卡选择release,然后重复一遍上述步骤,注意,这次复制的文件名不是以d结尾的,确定,至此结束。

Mat类,简单地说就是存储图像的类,图像在计算机中都是用矩阵维护的,矩阵的每个点称为一个像素点,像素点可以是单通道(一个数),双通道(两)抑或三通道,每个通道的像素值可以一个char,double,int都可以,这决定了所表示颜色的种类,其实char就不错了(0-255),当然这决定了图像的显示效果,越精细的图像对数值越高。

具体的使用可以去 opencv中文论坛的中文教程 看,写的很明白。

读取图片函数 imread();

函数原型如下  Mat imread(const string& filename, int flags=1 )

第一个参数当然是文件路径,第二个参数决定你想如何读入图片,1代表正常读入,很简单。不过在使用的时候发生了一个很奇葩的错误,无法识别这个函数,开始以为是头文件写错了,可以看了好多代码都是这么写的(highgui.h),可我的就是错的,没办法只能去找这个头文件打开看看了,然后发现这个文件里面居然没有包含 highgui.hpp(imread是写在这个文件里的)这个文件! 把这个头文件填上就好了=。=  好点背有木有。

复制图片函数 cvtColor();

函数原型如下 void cvtColor(InputArray src, OutputArray dst, int code, int dstCn=0 )

第一个参数就是源图片的Mat对象,第二个是目标图片的mat对象,第三个参数表示以什么样的颜色格式复制,最后一个默认。他同样需要导入头文件imgproc.hpp。

写入图片函数   imwrite();

函数原型如下  bool imwrite(const string& filename, InputArray image, const vector<int>& params=vector<int>())

随便找个地方下入一下,传入前两个参数就够了,地址+mat对象,且必须保证该地址存在。

opencv使用日记之一:平台搭建Mat类以及图像的读取修改的更多相关文章

  1. OPENCV mat类

    OpenCV参考手册之Mat类详解 目标 我们有多种方法可以获得从现实世界的数字图像:数码相机.扫描仪.计算机体层摄影或磁共振成像就是其中的几种.在每种情况下我们(人类)看到了什么是图像.但是,转换图 ...

  2. 搭建基于python +opencv+Beautifulsoup+Neurolab机器学习平台

    搭建基于python +opencv+Beautifulsoup+Neurolab机器学习平台 By 子敬叔叔 最近在学习麦好的<机器学习实践指南案例应用解析第二版>,在安装学习环境的时候 ...

  3. OpenCV 之 Mat 类

    以前看 OpenCV 的书,或者资料也好,遇到 Mat 类的介绍,一般都是匆匆带过,自以为已经很熟悉了,从来没有深入研究过. 结果前段时间面试了一家公司,被问到两个 Mat 的问题:一是,谈谈对 Ma ...

  4. 图像识别与OpenCV——Mat类与Mat_类的内存管理

    Mat_类是对Mat类的一个包装,其定义如下: template<typename _Tp> class Mat_ : public Mat { public: //只定义了几个方法 // ...

  5. 如何将OpenCV中的Mat类绑定为OpenGL中的纹理

    https://blog.csdn.net/TTTTzTTTT/article/details/53456324 如果要调用外接的USB摄像头获取图像通常使用OpenCV来调用,如何调用摄像头请参考本 ...

  6. opencv学习之路(4)、Mat类介绍,基本绘图函数

    一.Mat类创建 Mat img;//创建无初始化矩阵 Mat img1(,,CV_8UC1);//200行,100列(长200,宽100) Mat img2(Size(,),CV_8UC3,Scal ...

  7. opencv中mat类介绍

    The class Mat represents an n-dimensional dense numerical single-channel or multi-channel array. It ...

  8. OpenCV参考手册之Mat类详解

    OpenCV参考手册之Mat类详解(一) OpenCV参考手册之Mat类详解(二) OpenCV参考手册之Mat类详解(三)

  9. openCV学习——一、Mat类

    一.Mat数据类型 在以下两个场景中使用 OpenCV 时,我们必须事先知道矩阵元素的数据类型: 使用 at 方法访问数据元素的时候要指明数据类型 做数值运算的时候,比如究竟是整数除法还是浮点数除法. ...

随机推荐

  1. VMware ESXi5忘记登录密码解决办法

    很久没有登录ESXi5了,今天登录发现忘记密码了: 网上搜索到的方法都是使用linux其他版本的镜像的恢复模式来重置密码(尝试过了,ESXI自己的镜像没有恢复模式).于是使用现有的Ubuntu镜像来操 ...

  2. 玩转spring ehcache 缓存框架

    一.简介 Ehcache是一个用Java实现的使用简单,高速,实现线程安全的缓存管理类库,ehcache提供了用内存,磁盘文件存储,以及分布式存储方式等多种灵活的cache管理方案.同时ehcache ...

  3. 转:WPF中ListBox的创建和多种绑定用法

    先从最容易的开始演示ListBox控件的创建. Adding ListBox Items下面的代码是向ListBox控件中添加多项ListBoxItem集合.XAML代码如下:<ListBox ...

  4. PHP snippets

    Friendly file size string public static function bytesToSize($bytes) { if ($bytes < 1024) { retur ...

  5. jenkins代码自动部署

    jenkins是一个广泛用于持续构建的可视化web工具,持续构建说得更直白点,就是各种项目的"自动化"编译.打包.分发部署.jenkins可以很好的支持各种语言(比如:java, ...

  6. matplotlib学习之(四)设置线条颜色、形状

    本文是学习<matplotlib for python developers>的一点笔记plot画图时可以设定线条参数.包括:颜色.线型.标记风格.1)控制颜色颜色之间的对应关系为b--- ...

  7. linux 命令——10 cat (转)

    cat命令的用途是连接文件或标准输入并打印.这个命令常用来显示文件内容,或者将几个文件连接起来显示,或者从标准输入读取内容并显示,它常与重定向符号配合使用. 1.命令格式: cat [选项] [文件] ...

  8. Mybatis- 配置

    主配置文件 properties 第一种 <properties> <property name="jdbc.driver" value="com.my ...

  9. 张量 (tensor) 是什么?

    对于大部分已经熟练的数学和物理工作者, 这实在是一个极为基础的问题. 但这个问题在我刚接触张量时也困扰了我很久. 张量的那么多定义, 究竟哪些是对的? (显然都是对的. ) 它们的关系是什么? 我尽可 ...

  10. kubernetes-控制器Deployment和DaemonSet(八)

    Pod与controllers的关系 •controllers:在集群上管理和运行容器的对象•通过label-selector相关联•Pod通过控制器实现应用的运维,如伸缩,升级等 控制器又称工作负载 ...