opencv 学习1 gui属性
1.图像
先定一个小目标学习两个个功能
1.学习怎样读入一副画像,以及如何保存一副图像
2.学习三个函数cv2.imread(), cv2.imshow() , cv2.imwrite()
1.1读入图像:
使用函数cv2.imread()读入图像
import numpy as np
import cv2 mgs = cv2.imread('./picture/mingren.jpg', 0)
print(mgs)
显示的结果是
[[239 240 241 ... 223 223 224]
[240 239 239 ... 224 225 227]
[239 239 239 ... 222 226 228]
...
[115 121 116 ... 182 187 183]
[113 126 120 ... 183 183 182]
[113 111 110 ... 176 176 176]]
那么我们把0改成1试试看
[[[214 244 239]
[213 245 240]
[213 247 241]
...
[219 223 224]
[218 223 224]
[215 226 224]] [[212 246 240]
[211 245 239]
[207 244 240]
...
[220 225 224]
[220 226 225]
[218 229 226]] [[207 245 239]
[207 244 240]
[204 245 240]
...
[218 223 221]
[221 228 223]
[221 232 224]] ... [[101 93 164]
[107 101 166]
[104 101 150]
...
[157 179 197]
[162 184 202]
[156 180 198]] [[ 97 83 179]
[112 97 188]
[106 96 173]
...
[156 180 200]
[156 180 200]
[154 179 199]] [[102 91 161]
[100 88 160]
[ 99 87 159]
...
[148 170 198]
[148 170 198]
[148 170 198]]]
1.2显示图像
cv2.imshow('this_is_mr', mgs)
cv2.waitKey(0)
cv2.destroyAllWindows()
cv2.imshow('this_is_mr', mgs)
此条代码是展示一个窗口 窗口叫做 this_is_mr
a = cv2.waitKey(0)
这个函数为等待输入一个数值 返回ASCII码
cv2.destroyAllWindows()
关闭所有窗口
print(a)
使用函数 cv2.imread() 读入图像。这幅图像应该在此程序的工作路径,或者给函数提供完整路径,第二个参数是要告诉函数应该如何读取这幅图片。
• cv2.IMREAD_COLOR:读入一副彩色图像。图像的透明度会被忽略,这是默认参数。
• cv2.IMREAD_GRAYSCALE:以灰度模式读入图像
• cv2.IMREAD_UNCHANGED:读入一幅图像,并且包括图像的 alpha 通道
cv2.waitKey() 是一个键盘绑定函数。需要指出的是它的时间尺度是毫秒级。函数等待特定的几毫秒,看是否有键盘输入。特定的几毫秒之内,如果按下任意键,这个函数会返回按键的 ASCII 码值,程序将会继续运行。如果没有键盘输入,返回值为 -1,如果我们设置这个函数的参数为 0,那它将会无限期的等待键盘输入。它也可以被用来检测特定键是否被按下,例如按键 a 是否被按下,这个后面我们会接着讨论。
cv2.destroyAllWindows() 可以轻易删除任何我们建立的窗口。如果你想删除特定的窗口可以使用 cv2.destroyWindow(),在括号内输入你想删除的窗口名。
cv2.namedWindow('what',cv2.WINDOW_NORMAL) # 此时是先粗线矿在加载图片且框发大小都可以改变 倘若后面参数是cv2.WINDOW_AUTOSIZE
cv2.waitKey(0) # 就不可以改变
cv2.imshow('what', mgs)
# 如果你用的是 64 位系统,你需要将 k = cv2.waitKey(0) 这行改成k = cv2.waitKey(0)&0xFF。
cv2.waitKey(0)
cv2.destroyAllWindows()
2.视频
1.读取视频文件显示视频保存视频文件
2.从摄像头获取并显示视频 学习以下函数cv2.VideoCapture(),cv2.VideoWrite()
2.1用摄像头获取视频
为了获取视频,应该先创建一个cideocapture对象。他的参数就是设备的索引设备索引号就是在指定要使用的摄像头。一般的笔记本电脑都有内置摄像头。所以参数就是 0。你可以通过设置成 1 或者其他的来选择别的摄像头。之后,你就可以一帧一帧的捕获视频了最后需要停止捕获
import numpy as np
import cv2
text1 =cv2.VideoCapture(0) while(True):
# 一帧一帧读取画面
ret, frame = text1.read()
gary = cv2.cvtColor(frame,cv2.COLOR_BGR2GRAY) # 转成灰色
cv2.imshow('what', gary)
if cv2.waitKey(1) & 0xFF == ord('q'):
break
text1.release() # 释放
cv2.destroyAllWindows()
cap.read() 返回一个布尔值(True/False)。如果帧读取的是正确的,就是 True。所以最后你可以通过检查他的返回值来查看视频文件是否已经到了结尾。
有时 cap 可能不能成功的初始化摄像头设备。这种情况下上面的代码会报错。你可以使用 cap.isOpened(),来检查是否成功初始化了。如果返回值是True,那就没有问题。否则就要使用函数 cap.open()。
你可以使用函数 cap.get(propId) 来获得视频的一些参数信息。这里propId 可以是 0 到 18 之间的任何整数。每一个数代表视频的一个属性
如下
- CV_CAP_PROP_POS_MSEC视频文件的当前位置(以毫秒为单位)或视频捕获时间戳。
- CV_CAP_PROP_POS_FRAMES接下来要解码/捕获的帧的基于0的索引。
- CV_CAP_PROP_POS_AVI_RATIO视频文件的相对位置:0 - 电影的开始,1 - 电影的结尾。
- CV_CAP_PROP_FRAME_WIDTH视频流中帧的宽度。
- CV_CAP_PROP_FRAME_HEIGHT视频流中帧的高度。
- CV_CAP_PROP_FPS帧速率。
- CV_CAP_PROP_FOURCC编解码器的4字符代码。
- CV_CAP_PROP_FRAME_COUNT视频文件中的帧数。
- CV_CAP_PROP_FORMAT返回的Mat对象的格式
retrieve()。 - CV_CAP_PROP_MODE指示当前捕获模式的特定于后端的值。
- CV_CAP_PROP_BRIGHTNESS图像的亮度(仅适用于相机)。
- CV_CAP_PROP_CONTRAST图像对比度(仅适用于相机)。
- CV_CAP_PROP_SATURATION图像的饱和度(仅适用于相机)。
- CV_CAP_PROP_HUE图像的色调(仅适用于相机)。
- CV_CAP_PROP_GAIN图像的增益(仅适用于相机)。
- CV_CAP_PROP_EXPOSURE曝光(仅适用于相机)。
- CV_CAP_PROP_CONVERT_RGB布尔标志,指示是否应将图像转换为RGB。
- CV_CAP_PROP_WHITE_BALANCE_U白平衡设置的U值(注意:目前仅支持DC1394 v 2.x后端)
- CV_CAP_PROP_WHITE_BALANCE_V白平衡设置的V值(注意:目前仅支持DC1394 v 2.x后端)
- CV_CAP_PROP_RECTIFICATION立体摄像机的整流标志(注意:目前仅支持DC1394 v 2.x后端)
- CV_CAP_PROP_ISO_SPEED摄像机的ISO速度(注意:目前仅支持DC1394 v 2.x后端)
- CV_CAP_PROP_BUFFERSIZE存储在内部缓冲存储器中的帧数(注意:目前仅支持DC1394 v 2.x后端)
opencv 学习1 gui属性的更多相关文章
- opencv2.4.13+python2.7学习笔记--opencv中的Gui特性--图片:读图像,显示图像,保存图像
阅读对象:可以配置opencv+Python环境的任何人,毕竟写这篇文章的人就是小白. 1.环境说明 1.1opencv版本: 1.2Python版本: 1.3系统:win7 注: (1)opencv ...
- [OpenCV-Python] OpenCV 中的 Gui特性 部分 II
部分 IIOpenCV 中的 Gui 特性 OpenCV-Python 中文教程(搬运)目录 4 图片 目标 • 在这里你将学会怎样读入一幅图像,怎样显示一幅图像,以及如何保存一幅图像 • 你将要学习 ...
- OpenCV学习笔记(一)安装及运行第一个OpenCV程序
1.下载及安装 OpenCV是一套开源免费的图形库,主要有C/C++语言编写,官网: http://opencv.org/ .在 http://opencv.org/downloads.html 可以 ...
- [OpenCV学习笔记3][图像的加载+修改+显示+保存]
正式进入OpenCV学习了,前面开始的都是一些环境搭建和准备工作,对一些数据结构的认识主要是Mat类的认识: [1.学习目标] 图像的加载:imread() 图像的修改:cvtColor() 图像的显 ...
- OpenCV学习系列(一) Mac下OpenCV + xcode人脸检测实现
# OpenCV学习系列(一) Mac下OpenCV + xcode人脸检测实现 [-= 博客目录 =-] 1-学习目标 1.1-本章介绍 1.2-实践内容 1.3-相关说明 2-学习过程 2.1-环 ...
- 【opencv学习笔记五】一个简单程序:图像读取与显示
今天我们来学习一个最简单的程序,即从文件读取图像并且创建窗口显示该图像. 目录 [imread]图像读取 [namedWindow]创建window窗口 [imshow]图像显示 [imwrite]图 ...
- TweenMax学习整理--特有属性
TweenMax学习整理--特有属性 构造函数:TweenMax(target:Object, duration:Number, vars:Object) target:Object -- 需要缓 ...
- opencv学习笔记(七)SVM+HOG
opencv学习笔记(七)SVM+HOG 一.简介 方向梯度直方图(Histogram of Oriented Gradient,HOG)特征是一种在计算机视觉和图像处理中用来进行物体检测的特征描述子 ...
- opencv学习笔记(六)直方图比较图片相似度
opencv学习笔记(六)直方图比较图片相似度 opencv提供了API来比较图片的相似程度,使我们很简单的就能对2个图片进行比较,这就是直方图的比较,直方图英文是histogram, 原理就是就是将 ...
随机推荐
- MeteoInfoLab脚本示例:计算不同区域平均值
这里用美国做例子,有一个美国区域的格点温度场数据(usgrid.data),需要计算出每个州(state)的平均温度.当然需要有一个包含各州行政区域的shape文件了(相关文件可以在此帖中下载:htt ...
- Linux关联文件扩展名和打开程序
手动为Linux关联文件扩展名与打开程序. 当Linux不认识某种扩展名的时候,需要为此扩展名创建一个MIME类型.Linux是依据MIME类型而不是扩展名来决定打开程序的. 再将此种MIME类型与某 ...
- spring-boot-route(十九)spring-boot-admin监控服务
SpringBootAdmin不是Spring官方提供的模块,它包含了Client和Server两部分.server部分提供了用户管理界面,client即为被监控的服务.client需要注册到serv ...
- 基于risc-v架构cpu
一.定义: CPU ,全称为中央处理器单元,简称为处理器,是一个不算年轻的概念 早在 20 世纪60 年代便己诞生了第一款 CPU请注意区分"处理器"和"处理器核& ...
- laytable 前台删除后加载当前页数据。
laytable一次性获取数据后,点击删除调用后台删除.返回成功状态后刷新当前页数据. 渲染方法: //渲染表格 function renderingTable(pageIndex, sourceDa ...
- 国产化即时通信系统开发 -- 实现GGTalk的登录界面(Linux、Ubuntu、UOS、中标麒麟)
距离2013年开源GGTalk以来,7年已经过去了,GGTalk现在有了完整的PC版.安卓版.iOS版(即将发布),以及Xamarin版本. 然而,时代一直在变化,在今天,有个趋势越来越明显,那就是政 ...
- dubbo配置的覆盖关系
dubbo推荐在Provider上尽量多配置Consumer端属性: 由服务提供方设置超时,因为一个方法需要执行多长时间,服务提供方更清楚,如果一个消费方同时引用多个服务,就不需要关心每个服务的参数设 ...
- git学习(一) 入门级命令
git 本地操作 调出Git的帮助文档 git --help 查看某个具体命令的帮助文档 git +命令 --help 查看git的版本 git --version 生成空的本地仓库 git init ...
- if当中是赋值怎么办
1.Java中,赋值是有返回值的 ,赋什么值,就返回什么值.比如这题,x=y,返回y的值,所以括号里的值是1. 2.Java跟C的区别,C中赋值后会与0进行比较,如果大于0,就认为是true:而Jav ...
- 关于机器翻译评价指标BLEU(bilingual evaluation understudy)的直觉以及个人理解
最近我在做Natural Language Generating的项目,接触到了BLEU这个指标,虽然知道它衡量的是机器翻译的效果,也在一些文献的experiment的部分看到过该指标,但我实际上经常 ...