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下的一条指令:
  1. pip install opencv-python
    image.png
如果网速嫌太慢,就在安装是指定豆瓣源
  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:[email protected]: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

猜你喜欢

转载自www.cnblogs.com/shinebay/p/12929683.html