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. hugo网站配置聊天

    date: "2020-10-18T22:11:05+08:00" title: "hugo网站配置聊天" tags: ["dao"] ca ...

  2. docker-阿里云加速

    系统版本 centos7 阿里云登录 ->容器镜像服务->镜像加速器 复制下面的直接执行即可     sudo mkdir -p /etc/docker sudo tee /etc/doc ...

  3. monolog handler用哪个

    Handlers 记录日志到文件与系统日志(syslog) StreamHandler:记录日志到任何 PHP stream,用它来记录到文件. RotatingFileHandler: 每天一个文件 ...

  4. centos8环境安装配置rsync

    一,查看本地centos的版本: [root@localhost lib]# cat /etc/redhat-release CentOS Linux release 8.1.1911 (Core) ...

  5. 56.Qt-滚动字幕之无间隙滚动(原创)

    1.描述 最近要实现一个滚动条字幕,但是搜到的系列文章都是利用定时器QTimer,在固定的时间截取文本并显示,这样滚动的时候其实是断断续续的,因为实际上是一个个字符位移实现的,不过实现方便. 所以只有 ...

  6. Hive源码解析

    date: 2020-07-08 15:12:00 updated: 2020-08-21 17:38:00 Hive源码解析 入口:hive-cli-1.1.0-cdh5.14.4.jar!/org ...

  7. Linux的top命令及交换分区

    TOP命令关键指标 %MEM,在内存中的占用率 %CPU,使用率,如果两核,最大可到200% TIME+, 占用cpu的总时间/s SHR,分享内存 RES, 常驻内存,进程当前使用的内存大小,不包括 ...

  8. 如何实现一个FormData

    一.前言 最近项目中遇到一个问题,我们需要在cocos项目里去上传音频文件,而cocos原生环境和平时我们开发所在的浏览器环境和Node环境有很多差异,而cocos环境只提供了基础类,没有提供Form ...

  9. 在 k8S 中搭建 SonarQube 7.4.9 版本(使用 PostgreSQL 数据库)

    搭建 SonarQube 和 PostgreSQL 服务 本文搭建的 SonarQube 版本是 7.4.9-community,由于在官方文档中声明 7.9 版本之后就不再支持使用 MySQL 数据 ...

  10. SpringMVC中ModelAndView的两个jar包引起的思考servlet和portlet

    在使用ModelAndView时,需要去导包,但是有两个包. 检查前台form表单提交的也正确,后台这也没有问题. 后来发现竟然时导包导错误了. 到此,如果是因为到错包问题,应该就解决了. 但是,深入 ...