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. Windows下的git服务器搭建

    时间一晃又是两个月过去了,我好像在写博客这方面有点懒,= .= 主要也是没啥好写的,项目上的事情又不能写,能写的东西实在太少. 前两个月领导花巨资申请了一个服务器,让我搞git服务器来管理代码,花了几 ...

  2. ▶ 0001 No application 'E:\www\go\blog' found in your GOPATH

    go mod 配置 beego 首先cmd bee new blog go mod init 然后复制到任意目录 bee run 就会报错, 要退出该目录,进入上级目录 bee run blog 才行

  3. spring boot:用shardingjdbc实现多数据源的分库分表(shardingsphere 4.1.1/spring boot 2.3.1)

    一,shardingjdbc的用途 1,官方站介绍: Apache ShardingSphere 是一套开源的分布式数据库中间件解决方案组成的生态圈, 它由 JDBC.Proxy 和 Sidecar( ...

  4. ansible的copy模块应用(ansible 2.9.5)

    一,copy模块的作用: 复制文件到受控的远程主机 说明:刘宏缔的架构森林是一个专注架构的博客,地址:https://www.cnblogs.com/architectforest 对应的源码可以访问 ...

  5. selenium基础 --获取内容

    from time import sleep from selenium import webdriver browser = webdriver.Chrome() url = "http: ...

  6. 第三十三章 linux常规练习题(二)

    一.练习题一 1.删除用户基本组shanghai03.发现无法正常删除,怎样才能将其删除掉,不能删除用户.2.打开多个xshell窗口连接登录同一虚拟机,使用不同的用户登录多次,分别使用w和who命令 ...

  7. JavaSE学习笔记02运算符、帮助文档生成与Scanner输入

    1. 运算符 1. 算术运算符:+,-,*,/,%,++,-- //二元运算符 int a = 10; int b = 20; int c = 25; int d = 25; System.out.p ...

  8. MySQL安装版本介绍

    MySQL安装 源码安装 二进制格式的程序包 程序包管理器安装 yum dnf MySQL在CentOS上的情况 6上只有mySQL 7上只有mariadb 8上既有mysql也有mariadb Ce ...

  9. django—路由相关

    django不同版本的路由配置 django 2之前,配置urlpatterns使用的是url方法 django 2之后,配置urlpatterns使用的是path方法 path与url的区别: ur ...

  10. Nacos注册中心使用

    创建两个工程,一个是nacos-provider, 另一个是naocos-consumer: 添加nacos-provider的依赖 <parent> <groupId>org ...