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属性的更多相关文章

  1. opencv2.4.13+python2.7学习笔记--opencv中的Gui特性--图片:读图像,显示图像,保存图像

    阅读对象:可以配置opencv+Python环境的任何人,毕竟写这篇文章的人就是小白. 1.环境说明 1.1opencv版本: 1.2Python版本: 1.3系统:win7 注: (1)opencv ...

  2. [OpenCV-Python] OpenCV 中的 Gui特性 部分 II

    部分 IIOpenCV 中的 Gui 特性 OpenCV-Python 中文教程(搬运)目录 4 图片 目标 • 在这里你将学会怎样读入一幅图像,怎样显示一幅图像,以及如何保存一幅图像 • 你将要学习 ...

  3. OpenCV学习笔记(一)安装及运行第一个OpenCV程序

    1.下载及安装 OpenCV是一套开源免费的图形库,主要有C/C++语言编写,官网: http://opencv.org/ .在 http://opencv.org/downloads.html 可以 ...

  4. [OpenCV学习笔记3][图像的加载+修改+显示+保存]

    正式进入OpenCV学习了,前面开始的都是一些环境搭建和准备工作,对一些数据结构的认识主要是Mat类的认识: [1.学习目标] 图像的加载:imread() 图像的修改:cvtColor() 图像的显 ...

  5. OpenCV学习系列(一) Mac下OpenCV + xcode人脸检测实现

    # OpenCV学习系列(一) Mac下OpenCV + xcode人脸检测实现 [-= 博客目录 =-] 1-学习目标 1.1-本章介绍 1.2-实践内容 1.3-相关说明 2-学习过程 2.1-环 ...

  6. 【opencv学习笔记五】一个简单程序:图像读取与显示

    今天我们来学习一个最简单的程序,即从文件读取图像并且创建窗口显示该图像. 目录 [imread]图像读取 [namedWindow]创建window窗口 [imshow]图像显示 [imwrite]图 ...

  7. TweenMax学习整理--特有属性

    TweenMax学习整理--特有属性   构造函数:TweenMax(target:Object, duration:Number, vars:Object) target:Object -- 需要缓 ...

  8. opencv学习笔记(七)SVM+HOG

    opencv学习笔记(七)SVM+HOG 一.简介 方向梯度直方图(Histogram of Oriented Gradient,HOG)特征是一种在计算机视觉和图像处理中用来进行物体检测的特征描述子 ...

  9. opencv学习笔记(六)直方图比较图片相似度

    opencv学习笔记(六)直方图比较图片相似度 opencv提供了API来比较图片的相似程度,使我们很简单的就能对2个图片进行比较,这就是直方图的比较,直方图英文是histogram, 原理就是就是将 ...

随机推荐

  1. day26 Pyhton 复习re模块和序列化模块

    # re # 正则表达式 # 元字符 # 量词 # 贪婪匹配与惰性匹配 # 元字符量词 # 元字符量词? 在量词规范内,遇到一个x就停下来 # .*?x (.如果是第一个元素,那么它一定会从第一个元素 ...

  2. python接口测试之读取配置文件

    1.python使用自带的configparser模块用来读取配置文件,配置文件可以为.conf或.ini结尾 在使用前需要先安装该模块,使用pip安装即可 2.新建一个名为a.conf的配置文件 a ...

  3. swoole执行外部程序称为进程

    <?php $child = new \Swoole\Process(function(\Swoole\Process $process){ $process->exec('/usr/lo ...

  4. nginx安全: 配置http基本验证(Basic Auth)(nginx 1.18.0)

    一,http基本验证的作用: 1,http基本身份验证会从浏览器弹出登录窗口, 简单明了,容易理解, 对于面向终端用户的前台来说,不够友好, 但对于内部员工操作的后台还是很有用,通常作为一层安全措施应 ...

  5. 第七章 HTTP协议原理

    一.HTTP协议概述 1.什么是HTTP? HTTP 全称:Hyper Text Transfer Protocol 中文名:超文本传输协议 http就是将用户的请求发送到服务器,将服务器请求到的内容 ...

  6. 解决加密PDF文档无法复制文字的问题

    有的时候在网络上搜索到一篇心仪的PDF文档,想复制其中内容时提示无法复制. 如果只想摘抄其中部分文字内容,可以使用Firefox浏览器打开这篇加密文档. Firefox浏览器自带PDF插件,打开后即可 ...

  7. 如何使用性能分析工具定位SQL执行慢的原因?

    但实际上 SQL 执行起来可能还是很慢,那么到底从哪里定位 SQL 查询慢的问题呢?是索引设计的问题?服务器参数配置的问题?还是需要增加缓存的问题呢?性能分析来入手分析,定位导致 SQL 执行慢的原因 ...

  8. IDEA Cannot resolve plugin org.apache.maven.plugins:maven-site-plugin:3.8.2-plugin爆红错误

    如果确认本地库存在,maven仓库配置正确,将其显式声明出来,问题解决 <!--报找不到该依赖的错误, 本地库又存在,将其显式声明在这里,问题解决--> <plugin> &l ...

  9. day75:luffy:路飞学城项目后端环境搭建&Git相关知识点

    目录 1.Xadmin 1.Xadmin介绍 2.Xadmin安装 3.Xadmin的使用 2.项目环境搭建 1.外部依赖 2.依赖包安装 3.搭建项目 3.Git 4.日志配置 5.异常处理 6.创 ...

  10. 枚举的使用(限foton)

    使用: /** * 服务真实性标签 * * @param realRepairs * 真实维修单数 * @param totalRepairs * 总单数 * @return */ public st ...