1. 图片的读取,保存与显示:

1)调用opencv

import numpy as np
import cv2img_path = "D:/DL/AI-future/af2019-cv-training-20190312/00/00aed3c6b8f351e52ed5075603b56be1_c.jpg"
img = cv2.imread(img_path,0)   #读入图像。第二个参数cv2.IMREAD_COLOR/cv2.IMREAD_GRAYSCALEcv2.imshow("image",img)   #显示图像。   注意:毫秒级的,如果没有下句则会闪退
cv2.waitKey(0)           #0--无限期的等待键盘输入,按键之后才会运行下一句
cv2.destroyAllWindows()   #删除任何我们建立的窗口。删除特定的窗口可以使用 cv2.destroyWindow(),在括号内输入你想删 除的窗口名。cv2.imwrite(img_path,img)  #保存图像

例题:加载一个灰度图,显示图片,按下’s’键保存后退出,或者 按下 ESC 键退出不保存。

import numpy as np
import cv2img = cv2.imread('messi5.jpg', 0)
cv2.imshow('image', img)
k = cv2.waitKey(0)
if k == 27:          # wait for ESC key to exitcv2.destroyAllWindows()
elif k == ord('s'):  # wait for 's' key to savecv2.imwrite('messigray.png', img)cv2.destroyAllWindows()

2)使用 Matplotlib -----Matplotib 是 python 的一个绘图库

import numpy as np
import cv2
from matplotlib import pyplot as pltimg = cv2.imread('messi5.jpg', 0)
plt.imshow(img, cmap = 'gray', interpolation = 'bicubic')
plt.xticks([]), plt.yticks([])            # to hide tick values on X and Y axis
plt.show()

注意:彩色图像使用 OpenCV 加载时是 BGR 模式。但是 Matplotib 是 RGB 模式。所以彩色图像如果已经被 OpenCV 读取,那它将不会被 Matplotib 正确显示。

2. 视频的读取,显示和保存

为了获取视频,你应该创建一个 VideoCapture 对象。他的参数可以是 设备的索引号,或者是一个视频文件。
设备索引号就是在指定要使用的摄像头。 一般的笔记本电脑都有内置摄像头。所以参数就是 0。你可以通过设置成 1 或 者其他的来选择别的摄像头。之后,你就可以一帧一帧的捕获视频了。但是最后别忘了停止捕获视频。

  • 读取与显示

例题:
1)使用摄像头来捕获一段视频,并把它转换成灰度视频显示出来。

import numpy as np
import cv2cap = cv2.VideoCapture(0)      #创建一个 VideoCapture 对象
while(True):ret, frame = cap.read()     #一帧一帧读取图片gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)cv2.imshow('frame',gray)if cv2.waitKey(1) & 0xFF == ord('q'):breakcap.release()   # 释放捕获
cv2.destroyAllWindows()

2) 从文件中播放视频
只需要把设备索引号改成视频文件的名字。在 播放每一帧时,使用 cv2.waiKey() 设置适当的持续时间。如果设置的太低,视频就会播放的非常快,如果设置的太高就会播放的很慢,通常情况下 25 毫秒就可以了。

  • 保存

对于图片来时很简单,只需要使用 cv2.imwrite()。
对于视频来说我们要创建一个 VideoWriter 的对象。我们应该确定一个输出文件的名字。接下来指定 FourCC 编码(见下面)。播放频率和帧的大小也都需要确定。最后一个是 isColor 标签。如果是 True,每一帧就是彩色图,否则就是灰度图。

FourCC 就是一个 4 字节码,用来确定视频的编码格式:

例题:从摄像头中捕获视频,沿水平方向旋转每一帧并保存它。

import numpy as np
import cv2cap = cv2.VideoCapture(0)      #创建一个 VideoCapture 对象#定义编解码器并创建VideoWriter对象
fourcc = cv2.cv.FOURCC(*'XVID')
out = cv2.VideoWriter('output.avi',fourcc, 20.0, (640,480))while(cap.isOpened()):ret, frame = cap.read()     #一帧一帧读取图片。cap.read() 返回一个布尔值(ret=True/False)。如果帧读取的是正确的, 就是 True。if ret== True:frame = cv2.flip(frame,0)     #1水平翻转,0水平翻转,-1水平竖直翻转out.write(frame)       #保存cv2.imshow('frame',frame)if cv2.waitKey(1) & 0xFF == ord('q'):breakelse:break# Release everything if job is finished
cap.release()
out.release()
cv2.destroyAllWindows()

所以,保存操作记得有三步:
1)定义编解码器并创建VideoWriter对象

fourcc = cv2.cv.FOURCC(*'XVID')
out = cv2.VideoWriter('output.avi',fourcc, 20.0, (640,480))

2)操作后保存

out.write(frame)       #保存

3)关闭

out.release()

opencv--python(一)图像和视频处理之读取,显示和保存相关推荐

  1. opencv mat release thrown_【OpenCV+Python】图像与视频处理入门

    图像处理入门 之前我们已经讲过了OpenCV在各个平台上安装的方法了,从今天开始,正式进入实战部分.首先我们需要做的就是如何读取图像并显示出来,这是图像处理的最基本的部分. 首先我们来了解几个函数. ...

  2. opencv python 从摄像头获取视频、帧率、分辨率等属性设置和使用

    opencv python 从摄像头获取视频.帧率.分辨率等属性设置和使用 文章目录: 1,为了获取视频,你应该创建一个 VideoCapture 对象.他的参数可以是设备的索引号,或者是一个视频文件 ...

  3. openCV—Python(6)—— 图像算数与逻辑运算

    openCV-Python(6)-- 图像算数与逻辑运算 一.函数简介 1.add-图像矩阵相加 函数原型:add(src1, src2, dst=None, mask=None, dtype=Non ...

  4. OpenCV python 提取图像内的三色

    OpenCV python 提取图像内的三色 原图 [opencv.jpg] import cv2 import numpy as npdef main():# 1.导入图片img_src = cv2 ...

  5. OpenCV与图像处理学习一——图像基础知识、读入、显示、保存图像、灰度转化、通道分离与合并

    OpenCV与图像处理学习一--图像基础知识.读入.显示.保存图像.灰度转化.通道分离与合并 一.图像基础知识 1.1 数字图像的概念 1.2 数字图像的应用 1.3 OpenCV介绍 二.图像属性 ...

  6. 基于微软开源深度学习算法,用 Python 实现图像和视频修复

    ‍‍ 作者 | 李秋键 编辑 | 夕颜 出品 | AI科技大本营(ID:rgznai100) 图像修复是计算机视觉领域的一个重要任务,在数字艺术品修复.公安刑侦面部修复等种种实际场景中被广泛应用.图像 ...

  7. opencv C艹:读取视频文件,保存图像,视频文件,读取保存XML YAML文件

    <opencv4快速入门> 认识认识模块 D:\opencv\build\include\opencv2 路径下 calib3d 主要包含相机标定,立体视觉的功能:物体姿势估计,三维重建, ...

  8. python opencv 图像切割_【OpenCV+Python】图像的基本操作与算术运算

    图像的基本操作 在上个教程中,我们介绍了使用鼠标画笔的功能.本次教程,我们将要谈及OpenCV图像处理的基本操作. 本次教程的所有操作基本上都和Numpy相关,而不是与OpenCV相关.要使用Open ...

  9. OpenCV—Python PyLibTiff_psd 图像基本操作以及图像格式转换

    文章目录 一.图片 读.写.显示.属性查看 libtiff 包装器 Python 模块 opencv 模块 PIL 模块 直接修改图片格式 大(分辨率大)图片缩小 与上面代码同效 二.PSD图像读取与 ...

最新文章

  1. 零基础python入门书籍-浅谈零基础自学python入门书
  2. easyui combobox设置只读属性
  3. python升级或者其他原因把yum搞坏了
  4. mysql 字符类型
  5. CommunicationsException: Communications link failure
  6. 关于auto-keras训练cnn模型
  7. 利用Referer请求头防止“盗链”
  8. XY路由算法与转弯模型路由算法
  9. SourceTree的使用
  10. 软考程序员java_软考程序员难吗?
  11. 安卓股票悬浮窗_股票悬浮窗的安卓应用
  12. 德国制造和中国制造究竟不同在哪
  13. 若微型计算机在工作时突然断电,北语网院20春《计算机基础》作业_1234
  14. java酒店管理系统_java酒店管理系统(源码+数据库脚本)
  15. amoled和super amoled哪个更伤眼 amoled和super amoled的显示效果
  16. 天池龙珠训练营广东工业-林莉子学习笔记-Task1
  17. mysql MHA的工作原理
  18. Unreal Engine 4 —— 禅意花园项目中的水池
  19. 6:Eclipse 常用快捷键及源码查看
  20. Doris新增字段后立马向新增字段updat和insert显示没有该新增字段或者新增字段没有updata和insert数据

热门文章

  1. 【2019斯坦福CS224N笔记】(2)Word Vectors and Word Senses
  2. 京东面试:说说你对ByteBuf的理解
  3. 从Cortex-M33内核认识TrustZone
  4. 在廖雪峰官网学习 python 高阶函数
  5. Java实现第八届蓝桥杯9算数式
  6. 【计网】三、数据链路层
  7. 微信小程序IOS机型时间格式显示NaN异常问题
  8. yum源替换成阿里源以及yum源替换成本地源
  9. 科技云报道:5G还未普及,6G已经来了?
  10. html在边框线中加文本框,怎么设置幻灯片里的文本框边框线?