Python照样快!

众所周知,虽然Python语法简洁,编写高效,但相比C/C++运行慢很多。然
而Python还有个重要的特性:它是一门胶水语言!Python可以很容易地扩展
C/C++。OpenCV-Python就是用Python包装了C++的实现,背后实际就是
C++的代码在跑,所以代码的运行速度跟原生C/C++速度一样快。

安装

本文档编写时使用的软件版本是:OpenCV 4.x,Python 3.x。

要安装OpenCV,只需cmd下的一条指令:
  1. pip install opencv-python

如果网速嫌太慢,就在安装是指定豆瓣源
  1. pip install opencv-python -i https://pypi.doubanio.com/simple

安装测试

Python安装好之后,可以在cmd中输入python --version来查看Python的
版本信息。对于OpenCV,打开Python的开发环境,输入import cv2,运行
没有报错说明一切正常。要查看OpenCV的版本,可以:
  1. import cv2
  2. 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安装的更多相关文章

  1. "利用python进行数据分析"学习记录01

    "利用python进行数据分析"学习记录 --day01 08/02 与书相关的资料在 http://github.com/wesm/pydata-book pandas 的2名字 ...

  2. OpenCV 学习笔记 01 安装OpenCV及相关依赖库

    本次学习是基于Window10进行的.语言为python3. 1 与opencv相关的库简介 1.1 numpy numpy 是 OpenCV 绑定 python 时所依赖的库,此意味着numpy在安 ...

  3. NodeJS 学习总结 01 安装配置

    1 安装NodeJS 具体参考已发布的文章Ubuntu学习总结-07 Nodejs和npm的安装 2 使用淘宝 NPM 镜像 国内直接使用 npm 的官方镜像是非常慢的,这里推荐使用淘宝 NPM 镜像 ...

  4. Linux 学习记录 一(安装、基本文件操作).

         Linux distributions主要分为两大系统,一种是RPM方式安装软件的系统,包括Red Hat,Fedora,SuSE等都是这类:一种则是使用Debian的dpkg方式安装软件的 ...

  5. Linux 学习记录一(安装、基本文件操作).

    Linux 名字的由来,是当时作者将初版的 Linux 发布在网上,供别人下载完善,而那个核心文件夹就叫 Linux,就这么叫着了.而为什么 Linux 的吉祥物是一只企鹅呢?是因为当时大家要发行稳定 ...

  6. debian 学习记录-1 -安装

    之前装ubuntu12. 后来没有继续用,图形界面很不错,没有继续学习原因很多: · 没有基础知识支持(拷贝文件都是用鼠标拖动的) · 图形界面很好,导致没有使用命令行,安装驱动什么的都是靠鼠标点击 ...

  7. Linux学习笔记01—安装LInux系统

    1.首先,使用光驱或U盘或你下载的Linux ISO文件进行安装. 界面说明: Install or upgrade an existing system 安装或升级现有的系统 install sys ...

  8. linux学习记录.1.安装

    最近想了想决定开始学习linux. 在百度了一番后开始了安装,虚拟机VirtualBox,ubuntu. 基于VirtualBox虚拟机安装Ubuntu图文教程: http://blog.csdn.n ...

  9. python源码剖析学习记录-01

    学习<Python源码剖析-深度探索动态语言核心技术>教程         Python总体架构,运行流程   File Group: 1.Core Modules 内部模块,例如:imp ...

随机推荐

  1. 【Linux题目】第七关

    1. 如果想修改开机内核参数,应该修改哪个文件? A. /dev/sda1 B. /etc/fstab 磁盘自动挂载的文件 C. /boot/grub/grub.conf D. /etc/rc.loc ...

  2. DM 源码阅读系列文章(六)relay log 的实现

    2019独角兽企业重金招聘Python工程师标准>>> 作者:张学程 本文为 DM 源码阅读系列文章的第六篇,在 上篇文章 中我们介绍了 binlog replication 处理单 ...

  3. 乾颐堂7月HCIE、CCIE通过名单

    拼多多都上市了,现在很多培训机构也流行公用一张PASS了,山寨总是山寨的,不脚踏实地总是欺骗自己7月(自然月)乾颐堂通过22名学员,每个考试日通过一名HCIE.CCIE 转载于:https://blo ...

  4. 算法竞赛进阶指南--hamilton路径

    // hamilton路径 int f[1 << 20][20]; int hamilton(int n, int weight[20][20]) { memset(f, 0x3f, si ...

  5. RF(数据库测试)

    1.下载 DatabaseLibrary 库 pip install robotframework-databaselibrary 2.下载 pymysql 库(作为中间件) pip install ...

  6. RabbitMQ的使用(一)- RabbitMQ服务安装

    RabbitMQ的使用(一)- RabbitMQ服务安装 作者:markjiang7m2 原文地址:https://www.cnblogs.com/markjiang7m2/p/12769627.ht ...

  7. Linux下使用Rsync进行文件同步

    数据备份方案 1.需要备份的文件目录有(原则上,只要运维人员写入或更改的数据都需要备份)./data,/etc/rc.local,/var/spool/cron/root等,根据不同都服务器做不同的调 ...

  8. Nginx+Uwsgi+Django 项目部署到服务器。

    首先先说一下思路: 1.本地django项目打包 主要用到的是 python自带的distutils.core 下的 setup,具体代码在下面,主要讲的两个问题是package主要打包为和目录同级的 ...

  9. java基础篇 之 foreach探索

    我们看下这段代码: public class Main { public static void main(String[] args) { List list = new ArrayList(); ...

  10. Python 记录日志文件

    1.打印到控制台 # -*- coding: UTF-8 -*- import logging def logFileTest(): logging.debug('This is debug') lo ...