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题目】第七关
1. 如果想修改开机内核参数,应该修改哪个文件? A. /dev/sda1 B. /etc/fstab 磁盘自动挂载的文件 C. /boot/grub/grub.conf D. /etc/rc.loc ...
- DM 源码阅读系列文章(六)relay log 的实现
2019独角兽企业重金招聘Python工程师标准>>> 作者:张学程 本文为 DM 源码阅读系列文章的第六篇,在 上篇文章 中我们介绍了 binlog replication 处理单 ...
- 乾颐堂7月HCIE、CCIE通过名单
拼多多都上市了,现在很多培训机构也流行公用一张PASS了,山寨总是山寨的,不脚踏实地总是欺骗自己7月(自然月)乾颐堂通过22名学员,每个考试日通过一名HCIE.CCIE 转载于:https://blo ...
- 算法竞赛进阶指南--hamilton路径
// hamilton路径 int f[1 << 20][20]; int hamilton(int n, int weight[20][20]) { memset(f, 0x3f, si ...
- RF(数据库测试)
1.下载 DatabaseLibrary 库 pip install robotframework-databaselibrary 2.下载 pymysql 库(作为中间件) pip install ...
- RabbitMQ的使用(一)- RabbitMQ服务安装
RabbitMQ的使用(一)- RabbitMQ服务安装 作者:markjiang7m2 原文地址:https://www.cnblogs.com/markjiang7m2/p/12769627.ht ...
- Linux下使用Rsync进行文件同步
数据备份方案 1.需要备份的文件目录有(原则上,只要运维人员写入或更改的数据都需要备份)./data,/etc/rc.local,/var/spool/cron/root等,根据不同都服务器做不同的调 ...
- Nginx+Uwsgi+Django 项目部署到服务器。
首先先说一下思路: 1.本地django项目打包 主要用到的是 python自带的distutils.core 下的 setup,具体代码在下面,主要讲的两个问题是package主要打包为和目录同级的 ...
- java基础篇 之 foreach探索
我们看下这段代码: public class Main { public static void main(String[] args) { List list = new ArrayList(); ...
- Python 记录日志文件
1.打印到控制台 # -*- coding: UTF-8 -*- import logging def logFileTest(): logging.debug('This is debug') lo ...
