平台搭建就摸了一整天时间,真的是、、、不说了,最后我选择的是 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. 使用Kubernetes的java-client实现Deployment的部署及更新操作

    1. 背景介绍 需求: 针对多种协议SDK构造探针,测试公司接入机服务状况(每一个探针应对单一接入机,接入机数量可能会动态变化). 难点: 大多数协议SDK均不支持多实例运行,且部分SDK通过生成文件 ...

  2. Day5 CSS基本样式和C3选择器

    Day5 CSS基本样式和C3选择器 一.背景属性 1.背景颜色            background-color:transparent(默认值,透明); 颜色的取值:            ...

  3. Servlet的生命周期以及线程安全问题

    一:Servlet生命周期图,以及注意事项 二:代码演示 LifeCycleServlet.java package cn.woo.servlet; import java.io.IOExceptio ...

  4. 2833 奇怪的梦境 未AC

    2833 奇怪的梦境 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 黄金 Gold         题目描述 Description Aiden陷入了一个奇怪的梦境:他被困在一个小 ...

  5. 实现一个Promise.all

    用js自己实现一个Promise.all let promiseAll = (promises) => { return new Promise((resolve, reject) => ...

  6. tomcat jdk官网下载教程

    Tomcat不同版本官网下载: 1.官网地址:http://tomcat.apache.org/ 2.点击要下载的版本进入下载页,点击Archives进入版本选择页,然后选择对应的版本文件夹,进去后点 ...

  7. Piwik-2.16.1 (OpenLogic CentOS7.2)

    平台: CentOS 类型: 虚拟机镜像 软件包: centos7.2 piwik devops log analysis monitoring open-source 服务优惠价: 按服务商许可协议 ...

  8. app后台管理系统框架metronic的学习笔记

    先来看效果: 给出当前页面的代码: <!DOCTYPE html> <!--[if IE 8]> <html lang="zh" class=&quo ...

  9. LeetCode Implement strStr() 实现strstr()

    如题 思路:暴力就行了.1ms的暴力!!!别的牛人写出来的,我学而抄之~ int strStr(char* haystack, char* needle) { ; ; ; ++i) { ; ; ++j ...

  10. pta 编程题8 Tree Traversals Again

    其它pta数据结构编程题请参见:pta 这次的作业考察的是树的遍历. 题目的输入通过栈的pop给出了树的中序遍历的顺序.根据push和pop的顺序构造树的方法为:定义一个变量father来确定父节点, ...