环境

Python3以上的版本+OpenCV+PyCharm

图片

目标

读入,显示,保存图像

对应的函数:cv2.imread(),cv2.imshow(),cv.imwrite()

1.1读取图像

使用函数cv2.imshow()显示图像。

第一个参数:图像的路径。

在Python中可以直接在路径前用字符r防止转意,或者用斜杠"/"

r"C:UsersASUSDesktop1.jpg"

“C:/Users/ASUS/Desktop/1.jpg”

第二个参数:告诉函数应该如何读取这幅图片

cv2.IMREAD_COLOR:读入一副彩色图像。图像的透明度会被忽略, 这是默认参数

cv2.IMREAD_GRAYSCALE:以灰度模式读入图像

src=cv2.imread(r"C:UsersASUSDesktop1.jpg",cv.IMREAD_GRAYSCALE)

1.2显示图像

使用函数 cv2.imshow() 显示图像。

第一个参数: 窗口的名字

第二个参数:是我们的图像

cv2.imshow(“image”,src)

1.3保存图像

使用函数 cv2.imwrite() 来保存一个图像。首先需要一个文件名,之后才是你要保存的图像。

cv2.imwrite(r"C:UsersASUSDesktop7.jpg",src)

其他

先创建窗口,在窗口在显示图像

使用函数 cv2.namedWindow()来创建一个窗口。

第一个参数:窗口名

第二个参数:cv2.WINDOW_AUTOSIZE 窗口根据图像大小来显示

cv2.WINDOW_NORMAL 自调窗口的大小

cv2.namedWindow(‘image’, cv2.WINDOW_NORMAL)

import cv2

src=cv2.imread(r"C:UsersASUSDesktop1.jpg",cv2.IMREAD_GRAYSCALE)

cv2.namedWindow('image', cv2.WINDOW_NORMAL) #创建窗口

cv2.imshow('image',src) #显示图像

cv2.waitKey(0) #等待键盘录入

cv2.destroyAllWindows()#关闭窗口

窗口屏幕截图将会像以下的样子

cv2.waitKey() 是一个键盘绑定函数。检查是否有键盘的输入

cv2.destroyAllWindows() 可以轻易删除任何我们建立的窗口。

如果 你想删除特定的窗口可以使用 cv2.destroyWindow(),在括号内输入你想删 除的窗口名。

小结

import cv2

print("---------- Hello OpenCV ----------")

src=cv2.imread(r"C:UsersASUSDesktop1.jpg",cv2.IMREAD_GRAYSCALE)

cv2.namedWindow('image', cv2.WINDOW_NORMAL)

cv2.imshow("image",src)

k = cv2.waitKey(0)#获取键盘输入的值

if k == 27:#键盘输入esc时关闭窗口

cv2.destroyAllWindows()

elif k == ord('s'):#键盘输入s时保存图像,且关闭窗口

cv2.imwrite(r"C:UsersASUSDesktop7.jpg",src)

cv2.destroyAllWindows()

视频

目标

学会读取、显示、保存视频

对应的函数::cv2.VideoCapture(),cv2.VideoWrite()

2.1用摄像头捕获视频

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

import cv2

cap = cv2.VideoCapture(0)

fourcc =cv2.VideoWriter_fourcc(*'XVID')

out = cv2.VideoWriter('output.avi', fourcc , 25.0, (640, 480),0)

while (True):

ret, frame = cap.read()

gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)

frame = cv2.flip(gray, 1)

out.write(frame)

cv2.imshow('frame', frame)

if cv2.waitKey(1) & 0xFF == ord('q'):

break

cap.release()

out.release()

cv2.destroyAllWindows()

代码中:

cap = cv2.VideoCapture(0)

cv2.VideoCapture()中参数是0,表示打开笔记本的内置摄像头,参数是视频文件路径则打开视频

fourcc=cv2.VideoWriter_fourcc(*‘XVID’)

确定视频的编码格式

out = cv2.VideoWriter(‘output.avi’, fourcc , 25.0, (640, 480),0)

cv2.VideoWriter()第一个参数表示视频的存放路径,第二个参数表示视频的编码格式,后面的参数表示帧率、视频宽高

最后表示颜色参数为0,表示黑白

ret, frame = cap.read()

cap.read()按帧读取视频,ret,frame是获cap.read()方法的两个返回值。其中ret是布尔值,如果读取帧是正确的则返回True,如果文件读取到结尾,它的返回值就为False。frame就是每一帧的图像,利用循环读取每一帧的图像

gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)

cv2.cvtColor()第一个参数表示视频或者图像的变量,第二个参数表示图像或者视频颜色的选择

cv2.COLOR_BGR2GRAY:视频以黑白的形式显示,用到图片上,图片则以灰度图显示。

frame = cv2.flip(gray, 1)

cv2.flip()第一个参数表示要旋转的视频,第二个参数表示旋转的方向,0表示绕x轴旋转,大于0的数表示绕y轴旋转,小于0的负数表示绕x和y轴旋转。

cv2.waitKey(1) & 0xFF

参数是1,表示延时1ms切换到下一帧图像

cap.release()

释放摄像头

python opencv视频处理教程_OpenCV+Python详细教程-图片+视频(一)-Go语言中文社区...相关推荐

  1. 简笔彩色圣诞树的python代码_Python绘图,圣诞树,花,爱心 | Turtle篇-Go语言中文社区...

    1.画圣诞树 import turtle screen = turtle.Screen() screen.setup(800,600) circle = turtle.Turtle() circle. ...

  2. python opencv 图像添加噪声_opencv+python同时加椒盐噪声和随机杂点噪声

    同时生成椒盐代码如下: 通过pertotal 设置噪声总数  persalt盐噪声比例 #同时加椒盐 总占比 pertotal ,persalt盐占比image = cv.imread('c:\\me ...

  3. 使用python函数计算3.5四舍五入的结果_python 数字的四舍五入-Go语言中文社区

    python 数字的四舍五入 问题 你想对浮点数执行指定精度的舍入运算. 解决方案 对于简单的舍入运算,使用内置的 round(value, ndigits) 函数即可.比如: 当一个值刚好在两个边界 ...

  4. python方差函数_python 中的var()函数和cov函数用法-Go语言中文社区

    本文是学习多篇博客总结而得: numpy中var和cov函数求法和MATLAB中var和cov函数求法类似: 首先均值X,样本方差S,样本协方差C 公式分别为: 一.  MATLAB和Python中计 ...

  5. python爬微信好友_用Python爬了自己的微信好友,原来他们是这样的人……-Go语言中文社区...

    导读: 用了微信几年了,微信号有也不少了,但是真正了解自己的好友吗?好友最多的城市是哪个?好友男女比例是多少?好友签名都是什么?今天我们来充分了解自己的微信好友. 01 准备工作 运行平台:Windo ...

  6. python海龟怎样写字又快又好看_用python的小海龟 Turtle 画一朵好看又有趣的小花-Go语言中文社区...

    1967年, Daniel G. Bobrow , Wally Feurzeig , Seymour Papert 和 Cynthia Solomon 设计了LOGO编程语言,用一种直观的方式教孩子们 ...

  7. 用python画小花_用python的小海龟 Turtle 画一朵好看又有趣的小花-Go语言中文社区...

    1967年, Daniel G. Bobrow , Wally Feurzeig , Seymour Papert 和 Cynthia Solomon 设计了LOGO编程语言,用一种直观的方式教孩子们 ...

  8. python爬图片_Python爬虫:彼岸图网图片爬取-Go语言中文社区

    杂 哈哈,这是我第一篇博客 半年以后回来再看发现这代码简直太难看了 现在已经弃用大小驼峰转蛇形命名了 确实好看 除了命名别的也写的不怎么样 因为爬虫只是个爱好所以也不准备再投入时间重构了 将就着看吧 ...

  9. python爬取王者_python爬取王者荣耀APP英雄皮肤-Go语言中文社区

    我们用fillder抓包下载,>>fillder软件下载 1.下载安装软件,设置Tools >> HTTPS里面全部勾选 2.options >> connecti ...

  10. Python数据可视化之Plotnine库超详细教程系列

    Python数据可视化之Plotnine库超详细教程系列(一):概述 一.Plotnine库简介 ggplot2包奠定了R语言数据可视化在数据科学中的地位,数据可视化一直是Python的短板,即使有M ...

最新文章

  1. WebRequest 请求被中止: 请求已被取消。 错误解决方法
  2. 客户端界面实现及登录功能实现
  3. C++ Primer 5th笔记(chap 14 重载运算和类型转换)二义性类型转换
  4. python 获取内存使用率_Python获取CPU使用率、内存使用率、网络使用状态 | 学步园...
  5. 利用python进行tf-idf算法绘制词云图_利用python实现通过TF-IDF和BM25提取文章关键词...
  6. Java模拟HTTP的Get和Post请求(增强)
  7. palapaweb的mysql无法运行_Mysql 服务无法启动 服务没有报告任何错误
  8. Xcode Developer Tools
  9. 软件测试总结--01基础
  10. JAVA中读取配置文件以及修改配置文件
  11. xv6实验课程--系统调用
  12. c语言哈夫曼运行时错误,游戏运行错误 提示Unhandled exception caught 怎么解决 救命呀!...
  13. 静态博客网站——vuepress功能进化
  14. 精准医学: 应用脑脊液游离DNA全基因组甲基化测序筛选小儿髓母细 胞瘤早期诊断与预后监测的可靠生物标志物|液体活检专题
  15. 关于“在efi系统上,windows只能安装到gpt分区”的问题的解决方法的讨论(典型的宏基4750g)
  16. 链表c语言代码题库排坐标,C语言讲义——链表完整代码
  17. Linux ——objdump和readelf的使用
  18. ms dtc 启动失败的解决办法。
  19. Python——文件(File)操作汇总
  20. mysql自增默认值_mysql auto_increment自增初始值与步长

热门文章

  1. nofollow标签_nofollow标签在网站中的运用
  2. python多线程处理文件_python多线程分块读取文件
  3. linux vsftpd用法,Linux_LINUX系统下vsftpd 命令详解,FTP命令是Internet用户使用最频 - phpStudy...
  4. 线性代数可以速成吗_怎么在一个晚上搞定线性代数?
  5. 对抗canary保护技术的几种方式
  6. Hadoop环境搭建教学(一)运行环境,集群规划介绍;
  7. python函数默认参数作用域
  8. Python运算符可不只有加减乘除
  9. 腾讯微信是通过美国服务器传的吗,原来微信和QQ的文件是可以相互传输的!现在才知道,真是太可惜了...
  10. VisualStudio opencv配置