Python_OpenCV学习记录01安装
Python照样快!
众所周知,虽然Python语法简洁,编写高效,但相比C/C++运行慢很多。然
而Python还有个重要的特性:它是一门胶水语言!Python可以很容易地扩展
C/C++。OpenCV-Python就是用Python包装了C++的实现,背后实际就是
C++的代码在跑,所以代码的运行速度跟原生C/C++速度一样快。
安装
本文档编写时使用的软件版本是:OpenCV 4.x,Python 3.x。
要安装OpenCV,只需cmd下的一条指令:
- pip install opencv-python
如果网速嫌太慢,就在安装是指定豆瓣源
- pip install opencv-python -i https://pypi.doubanio.com/simple
安装测试
Python安装好之后,可以在cmd中输入python --version来查看Python的
版本信息。对于OpenCV,打开Python的开发环境,输入import cv2,运行
没有报错说明一切正常。要查看OpenCV的版本,可以:
- import cv2
- print(cv2.__version__) #'4.2.0'
- 安装完成之后,我们开始最基本的操作
- 加载图片,显示图片,保存图片
- OpenCV函数:cv2.imread(), cv2.imshow(), cv2.imwrite()
import cv2
import numpy as np
img=cv2.imread("timg.jpg",1) #读取函数,第一个参数图片路
径,第二个参数图片类型--1代表彩色图片,2代表灰度图片
cv2.imshow("image",img) #显示函数 窗口名+图片对象
key = cv2.waitKey(0) #等待函数,参数为等待的时间,单位是毫秒。0
为一直等待
if key==27: #按esc键时,关闭所有窗口
print(key)
cv2.destroyAllWindows() #销毁窗口
img.shape #图片尺寸900*1440 3为RGB
(900, 1440, 3)
img=cv2.imread("timg.jpg",1)
scale_percent = 50 # percent of original size #缩放比例
width = int(img.shape[1] * scale_percent / 100)
height = int(img.shape[0] * scale_percent / 100)
dim = (width, height)
img=cv2.resize(img,dim) #重设窗口大小
cv2.imshow("imag",img)
key = cv2.waitKey(0)
if key==27: #按esc键时,关闭所有窗口
print(key)
cv2.destroyAllWindows()
- 打开摄像头并捕获照片
- 播放本地视频,录制视频
- OpenCV函数:cv2.VideoCapture(), cv2.VideoWriter()
要使用摄像头,需要使用cv2.VideoCapture(0)创建VideoCapture对象,参数0指的是摄像头的编号.
如果你电脑上有两个摄像头的话,访问第2个摄像头就可以传入1,依此类推。
#url="http://admin:admin@10.181.151.231:8081/" #网络摄像头
#capture = cv2.VideoCapture(url)
capture = cv2.VideoCapture(0) #0为默认摄像头
while(True):
# 获取一帧
ret, frame = capture.read()
# 将这帧转换为灰度图
img=cv2.resize(frame,(1080,540))
cv2.imshow('frame', img)
if cv2.waitKey(1) == ord('q'):
cv2.destroyAllWindows()
break
capture.release() #释放摄像头
播放本地视频
跟打开摄像头一样,如果把摄像头的编号换成视频的路径就可以播放本地视频了。回想一下cv2.waitKey(),它的参数表示暂停时间,所以这个值越大,视频播放速度越慢,反之,播放速度越快,通常设置为25或30。
# 播放本地视频
capture = cv2.VideoCapture('demo_video.mp4')
while(capture.isOpened()):
ret, frame = capture.read()
gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
cv2.imshow('frame', gray)
if cv2.waitKey(30) == ord('q'):
break
Python_OpenCV学习记录01安装的更多相关文章
- "利用python进行数据分析"学习记录01
"利用python进行数据分析"学习记录 --day01 08/02 与书相关的资料在 http://github.com/wesm/pydata-book pandas 的2名字 ...
- OpenCV 学习笔记 01 安装OpenCV及相关依赖库
本次学习是基于Window10进行的.语言为python3. 1 与opencv相关的库简介 1.1 numpy numpy 是 OpenCV 绑定 python 时所依赖的库,此意味着numpy在安 ...
- NodeJS 学习总结 01 安装配置
1 安装NodeJS 具体参考已发布的文章Ubuntu学习总结-07 Nodejs和npm的安装 2 使用淘宝 NPM 镜像 国内直接使用 npm 的官方镜像是非常慢的,这里推荐使用淘宝 NPM 镜像 ...
- Linux 学习记录 一(安装、基本文件操作).
Linux distributions主要分为两大系统,一种是RPM方式安装软件的系统,包括Red Hat,Fedora,SuSE等都是这类:一种则是使用Debian的dpkg方式安装软件的 ...
- Linux 学习记录一(安装、基本文件操作).
Linux 名字的由来,是当时作者将初版的 Linux 发布在网上,供别人下载完善,而那个核心文件夹就叫 Linux,就这么叫着了.而为什么 Linux 的吉祥物是一只企鹅呢?是因为当时大家要发行稳定 ...
- debian 学习记录-1 -安装
之前装ubuntu12. 后来没有继续用,图形界面很不错,没有继续学习原因很多: · 没有基础知识支持(拷贝文件都是用鼠标拖动的) · 图形界面很好,导致没有使用命令行,安装驱动什么的都是靠鼠标点击 ...
- Linux学习笔记01—安装LInux系统
1.首先,使用光驱或U盘或你下载的Linux ISO文件进行安装. 界面说明: Install or upgrade an existing system 安装或升级现有的系统 install sys ...
- linux学习记录.1.安装
最近想了想决定开始学习linux. 在百度了一番后开始了安装,虚拟机VirtualBox,ubuntu. 基于VirtualBox虚拟机安装Ubuntu图文教程: http://blog.csdn.n ...
- python源码剖析学习记录-01
学习<Python源码剖析-深度探索动态语言核心技术>教程 Python总体架构,运行流程 File Group: 1.Core Modules 内部模块,例如:imp ...
随机推荐
- 【Linux常见命令】cd命令
BASH_BUILTINS(1) cd命令用于切换当前工作目录至 dirName(目录参数). 其中 dirName 表示法可为绝对路径或相对路径.若目录名称省略,则变换至使用者的 home 目录 ( ...
- WLAN 无线网络 03 - RF 基础
射频(Radio frequency),又称无线电频率.无线射频.高周波,常被用来当成无线电的同义词,为在3 kHz至300 GHz这个范围内的震荡频率,这个频率相当于无线电波的频率,以及携带着无线电 ...
- LinearLayout控件
LinearLayout是线性布局控件,它包含的子控件将以横向或竖向的方式排列,按照相对位置来排列所有的widgets或者其他的containers,超过边界时,某些控件将缺失或消失.因此一个垂直列表 ...
- SQL Server 字段和对应的说明操作(SQL Server 2005 +)
为什么80%的码农都做不了架构师?>>> 添加说明 EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value ...
- 机器学习之分类回归树(python实现CART)
之前有文章介绍过决策树(ID3).简单回顾一下:ID3每次选取最佳特征来分割数据,这个最佳特征的判断原则是通过信息增益来实现的.按照某种特征切分数据后,该特征在以后切分数据集时就不再使用,因此存在切分 ...
- Tomcat的设置4——Tomcat的体系结构与设置基于端口号的虚拟主机
一.Tomcat体系结构 从conf/server.xml可体现Tomcat的体系.一个Server可有多个service,一个service可以有多个连接器connector,每个连接器暴露出不同的 ...
- iOS自定义tabBar
在我们的项目中经常会自己自定义tabBar因为苹果自带的真的太丑了!也不满足我们的项目需求. 好 开始行动吧! 先上图看下我们最终实现的效果: 继承UItabBar自定义一个自己的tabBar .h# ...
- VS Code 全部快捷键一览表(巨TM全)
常用 General 按 Press 功能 Function Ctrl + Shift + P,F1 显示命令面板 Show Command Palette Ctrl + P 快速打开 Quick O ...
- 数学--数论--Find Integer(勾股数定理)
Problem Description people in USSS love math very much, and there is a famous math problem give you ...
- 数学--数论--HDU 5019 revenge of GCD
Revenge of GCD Problem Description In mathematics, the greatest common divisor (gcd), also known as ...
