图像载入

imread()函数

Mat imread(const string& filename, int flags = 1);

第一个参数为文件名

第二个参数为载入标识

  • flags > 0 返回一个3通道的彩色图像
  • flags = 0 返回灰度图像
  • flags < 0 返回包含Alpha通道的加载图像
  • 若要载入最真实无损的源图像,可flags = 2 || flags = 4

imshow()函数

void imshow(const string& winname, InputArray mat);
  • 第一个参数:const string& 类型的winname,填需要显示的窗口标识名称。
  • 第二个参数:InputArray类型的mat,填写要显示的图像

namedWindow函数

void namedWindow(const string& winname, int flags=WINDOW_AUTOSIZE)

  • 第一个参数,const string&类型的name,填写被用做窗口的标识符的窗口名称。
  • 第二个参数,int 类型的flags,窗口的标识,默认为WINDOW_AUTOSIZE,还可以填如下几种值:
    • WINDOW_NORMAL,用户可以改变窗口的大小
    • WINDOW_AUTOSIZE,窗口大小会自动调整以适应所显示的图像。并且用户不能手动改变改变窗口的大小
    • WINDOW_OPENGL,窗口创建的时候回支持OpenGL。

可以调用destroyWindow()或者destroyAllWindows()函数来关闭窗口,并取消之前分配的与窗口相关的所有内存空间。

addWeighted 函数

void addWeighted(InputArray src1, double alpha, InputArray src2, double beta, double gamma, OutputArray dst, int dtype=-1)

六个参数分别是

  • 输入图片1
  • 融合比例
  • 图片2
  • 融合比例
  • 偏差
  • 输出图片

createTrackbar函数

CV_EXPORTS int createTrackbar(const string& trackbarname,
const string& winname,
int* value, int count,
TrackbarCallback onChange = 0,
void* userdata = 0);

六个参数如下

  • const string&类型的trackbarname,轨迹条的名字,用来代表轨迹条
  • const string&类型的winname,窗口的名字,代表轨迹条所依附的窗口
  • int* 类型的value,一个指向整形的指针,表示滑块的位置。创建时,滑块的初始位置就是该变量当前的值。
  • int 类型的count,表示滑块可以达到的最大位置的值。滑块最小位置的值始终为0.
  • TrackbarCallback 类型的onChange,它有默认值0.这是一个指向回调函数的指针,每次滑块位置改变时,这个函数都会进行回调。并且这个函数的原型必须为 void function(int , void* ); 其中第一个参数是轨迹条的位置,第二个参数是用户数据(参数六)。如果回调是NULL指针,则表示没有回调函数的调用,仅第三个参数value有变化。
  • void* 类型的userdata,默认值0.这个参数是用户传给回调函数的数据,用来处理轨迹条事件。如果使用的第三个参数value实参是全局变量的话,完全可以不去管这个userdata参数。

getTrackbarPos 函数

int getTrackbarPos(const string& trackbarname, const string& winname);
  • const string& 类型的trackbarname,表示轨迹条的名字
  • const string& 类型的winname,表示轨迹条的父窗口名称

鼠标操作 setMouseCallback

该函数的作用是为指定窗口设置鼠标回调函数

void setMouseCallback(const string& winname, MouseCallback onMouse, void* userdata=0 )
  • const string&类型的winname,窗口名字。
  • MouseCallback类型的onMouse,指定窗口里每次鼠标事件发生的时候,被调用的函数指针。这个函数的原型的大概形式为void Foo(int event, int x, int y, int flags, void* param)。其中event是CV_EVENT变量之一,x和y是鼠标指针在图像坐标系(需要注意,不是窗口坐标系)中的坐标值,flags是EVENT_FLAG的组合,param是用户定义的传递到SetMouseCallback函数调用的参数。
  • void*类型的userdata,用户定义的传递到回调函数的参数,默认值0。

OpenCV图像载入、显示和输出到文件以及滑块的使用的更多相关文章

  1. OpenCV——图像的载入、显示、输出到文件和滑动条、鼠标操作

    图像的载入.显示.输出到文件和滑动条 滑动条 示例: 鼠标操作

  2. 【OpenCV】OpenCV2.4.6 与Visiual Studio 2008,Python2.7.5配置和图像载入显示

    自从OpenCV2.2开始,OpenCV 库便分成几个模块并位于lib文件中,本节介绍从OpenCV2.4.6与VS2008 .Python2.7.5如何配置环境,如何外部文件载 入图像.在窗口中显示 ...

  3. HighGUI图形图像界面初步—— 图像的载入、显示与输出

    HighGUI模块为高层GUI图形用户界面模块,包含媒体的输入输出.视频捕捉.图像和视频的编解码.图形交互界面的接口等. 在本章中,我们将学到: 图像的载入.显示和输出到文件的详细分析 滑动条的创建和 ...

  4. 【OpenCV入门教程之三】 图像的载入,显示和输出 一站式完全解析(转)

    本系列文章由@浅墨_毛星云 出品,转载请注明出处. 文章链接:http://blog.csdn.net/poem_qianmo/article/details/20537737 作者:毛星云(浅墨)  ...

  5. 学习 opencv---(2) 图像的载入,显示和输出

    了解过之前老版本OpenCV的童鞋们都应该清楚,对于OpenCV1.0时代的基于 C 语言接口而建的图像存储格式IplImage*,如果在退出前忘记release掉的话,就会照成内存泄露.而且用起来超 ...

  6. openCV学习——一、图像读取、显示、输出

    openCV学习——一.图像读取.显示.输出   一.Mat imread(const string& filename,int flags=1),用于读取图片 1.参数介绍 filename ...

  7. OpenCV3编程入门笔记(1)图像载入、显示、保存、变换灰度图

    图像载入.显示.保存函数: 1         图像载入函数:imread()   Mat imread(const string& filename, int flags=1); const ...

  8. Imagelab-0-QT label显示 opencv 图像

    Imagelab-0-QT label显示 opencv 图像 opencvc++qtimagelab 开始之前 这其实也是opencv 处理图像的系列, 只是想我们在进一步复杂化我们的代码之前, 每 ...

  9. [OpenCV Qt教程] 在Qt图形界面中显示OpenCV图像的OpenGL Widget(第二部分)

    本文译自:http://www.robot-home.it/blog/en/software/tutorial-opencv-qt-opengl-widget-per-visualizzare-imm ...

随机推荐

  1. ECMAScript基本对象——RegExp 正则表达式对象

    含义:定义字符串的组成规则 使用: 1.定义单个字符:[ ] [a] 表示有一个字符是  小写的a [ab] 表示有一个字符是  小写的a或者b [a-z] 表示有一个字符是  小写的a到z [a-z ...

  2. 剑指offer-面试题18-删除链表的节点-链表

    /* 题目:给定单向链表的头指针和一个节点指针,定义一个函数在O(1)时间内删除该节点. */ /* 思路: 将要删除的节点的下一个节点的value和next复制过来,删除下一个节点. 考虑两种特殊情 ...

  3. python 队列、栈

    队列 常规队列 双端队列 优先级队列 栈

  4. 输出《Harry Potter and the Sorcerer's Stone》英文i的字母数量并排序

    要求1:输出某个英文文本文件中 26 字母出现的频率,由高到低排列,并显示字母出现的百分比,精确到小数点后面两位.            字母频率 = 这个字母出现的次数 / (所有A-Z,a-z字母 ...

  5. beautifulsoup4进阶学习笔记

    requests库是可以找到想要的东西,基本上几行代码就搞定,但是进一步把有用的内容提取出来变成自己想要的格式来方便后续进行数据分析 正则表达式提取的话,需要一些时间成本,这个可以每天积累一点. 这里 ...

  6. 《操作系统真象还原》BIOS

    以下是读本书第二章的收获. 记得我大学学习操作系统的时候会遇到一些奇奇怪怪的问题,因为觉得问题太奇怪了,所以羞于问老师.诸如ROM到底是个什么东西:如果用内存映射的方式访问外部设备,是不是内存条里专门 ...

  7. sql注入文件写入和读取

    系统固定文件路径:https://blog.csdn.net/ncafei/article/details/54616826 /etc/passwd c:/windows/win.ini 文件读取使用 ...

  8. Firefox下载.net服务器文件时中文乱码

    ASP.NET中产生一个Excel报表,供浏览器下载.显然,下载时经常有汉字报表名称.针对当前的两个主流的浏览器IE和Firefox,似乎没有兼容的解决办法.网上搜索了一些解决方法,但在Firefox ...

  9. 【算法】用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。

    public class Solution { Stack<Integer> stack1 = new Stack<Integer>(); Stack<Integer&g ...

  10. 五、JVM之堆内存

    堆结构分代图 堆结构分代的意义 Java虚拟机根据对象存活的周期不同,把堆内存划分为几块,一般分为新生代.老年代和永久代(对HotSpot虚拟机而言),这就是JVM的内存分代策略. 堆内存是虚拟机管理 ...