《实用OpenCV》<四> 图像和GUI窗口的基本操作(1)
来源:互联网 发布:天盾数据恢复中心 编辑:程序博客网 时间:2024/05/22 21:29
在窗口中显示硬盘中的图像
在OpenCV里显示图片是非常容易的,highgui模块的imread(), namedWindow()和imshow()方法就可以解决。看一下例子4-1:在窗口里展示一张图片,按下Esc 或 q 或者 Q 可以退出。
例 4-1 在窗口里展示图片
#include <iostream>#include <opencv2/highgui/highgui.hpp>using namespace std;using namespace cv; int main(int argc, char **argv){ Mat im = imread("image.jpg", CV_LOAD_IMAGE_COLOR); namedWindow("Hello"); imshow("Hello", im); cout << "Press 'q' to quit..." << endl; while(char(waitKey(1)) != 'q') {} return 0;}分块将代码解释一下:
Mat im = imread("image.jpg", CV_LOAD_IMAGE_COLOR);
创建一个cv::Mat类型的变量im (我们刚刚直接写的是Mat而不是cv::Mat是因为在最开始有申明了使用cv的命名空间,这是通常的做法),通过imread方法从硬盘读取image.jpg然后指定给im对象。CV_LOAD_IMAGE_COLOR是一个标签(在highgui.hpp头文件定义的一个常量),为了告诉imread当做一张彩色图片来加载。一张彩色图有三个通道——红、绿和蓝,而不像灰度图只有一个通道——亮度。im这里的类型是CV_8UC3,8代表每个像素在每个通道所在的位的数量,U代表无符号字符(每个像素的每一个通道是一个8位的无符号字符),C3代表三个通道。
namedWindow("Hello");imshow("Hello", im);
首先创建了一个叫Hello的窗口(Hello也会显示在窗口的标题栏),然后在窗口里显示im对象存储的图像。就是这样了!剩下的代码是防止窗口退出和用户按下q或Q之前销毁窗口。
这里值得注意的一个函数是waitKey()。它会一直等待一个按键事件(当n<=0)(注:鼠标拖动也会),或者如果n是正值的话会等待n毫秒。它会返回按键的ASCII码,或者返回-1如果指定的时间到了还没有按键的话。注意waitKey()仅仅是当OpenCV GUI窗口打开并处在焦点的时候有效。
2 0
- 《实用OpenCV》<四> 图像和GUI窗口的基本操作(1)
- 《实用OpenCV》<四> 图像和GUI窗口的基本操作(2)
- 《实用OpenCV》<四> 图像和GUI窗口的基本操作(3)
- 《实用OpenCV》<四> 图像和GUI窗口的基本操作(4)
- OpenCV(四)图像的基本操作
- opencv pyhon学习笔记(四)基本的图像操作
- OpenCV-图像的基本操作
- opencv-图像处理1 图像基本操作
- 基于opencv和c++的图像基本操作
- openCV学习笔记(四):图像遍历和像素操作
- opencv学习笔记1:矩阵和图像基本操作
- opencv基本图像操作
- opencv图像基本操作
- opencv-图像基本操作
- OpenCV-图像基本操作
- OpenCV之core 模块. 核心功能(1)Mat - 基本图像容器 OpenCV如何扫描图像、利用查找表和计时 矩阵的掩码操作 使用OpenCV对两幅图像求和(求混合(blending))
- OpenCV 学习笔记 ----图像的基本操作(二)
- openCV Python 学习笔记(一)图像的基本操作
- maven ArtifactTransferException: Failure to transfer
- cppTest-8.2:虚函数与多态性
- Shell位置参数
- JVM简介
- 中心化副本控制协议:primary-secondary协议
- 《实用OpenCV》<四> 图像和GUI窗口的基本操作(1)
- 使用gdb调试段错误(segment fault)
- 动态规划之背包问题(一)
- cppTest-8.2:虚析构函数探究&父类和子类的构造函数与析构函数的调用顺序
- 段错误调试
- ASP.NET Entity Framework 查询数据表多个"s"的解决方法。
- 五大常用算法之二:动态规划算法
- POJ 2115 C Looooops
- 我的第一次项目需求调研