python&opencv学习笔记

最近决定系统地学习一下关于opencv的基础应用,略记一下。

一、基本读写图片
1.读图片

使用函数 cv2.imread() 读入图像。这幅图像应该在此程序的工作路径,或者给函数提供完整路径,第二个参数是要告诉函数应该如何读取这幅图片。

import cv2
img = cv2.imread('messi5.jpg')      # Load an image

2.显示图像

使用函数 cv2.imshow() 显示图像。窗口会自动调整为图像大小。第一个参数是窗口的名字,其次才是我们的图像。你可以创建多个窗口,只要你喜欢,但是必须给他们不同的名字。

cv2.imshow('image',img)     #image为显示窗口名称,img为图片对象
cv2.waitKey(0)              #waitkey函数用来等待键盘
cv2.destroyAllWindows()     #可以轻易删除任何我们建立的窗口。

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

3.保存图像

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

cv2.imwrite('messigray.png',img)       #第一个参数为保存图片名称,第二个是图片对象

4.小实现
借用别人的代码,下面的程序将会加载一个灰度图,显示图片,按下’s’键保存后退出,或者按下 ESC 键退出不保存。

import numpy as np
import cv2

img = cv2.imread('messi5.jpg',0)
cv2.imshow('image',img)
k = cv2.waitKey(0)
if k == 27:         # wait for ESC key to exit
    cv2.destroyAllWindows()
elif k == ord('s'): # wait for 's' key to save and exit
    cv2.imwrite('messigray.png',img)
    cv2.destroyAllWindows()

二、视频获取
1.使用摄像头捕获图片
要使用摄像头,需要使用cv2.VideoCapture(0)创建VideoCapture对象,参数:0指的是摄像头的编号。如果你电脑上有两个摄像头的话,访问第2个摄像头就可以传入1。

import cv2
capture = cv2.VideoCapture(0)           #建立一个VideoCapture 对象

while(True):
    ret, frame = capture.read() 
    # 获取一帧,ret为bool值,为1则图片无损,否则存在问题
    # frame为图片对象
    gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
    # 将这帧转换为灰度图
    cv2.imshow('frame', gray)
    #显示图像
    if cv2.waitKey(1) == ord('q'):
        break
cap.release()
cv2.destroyAllWindows()
#释放空间,结束捕获

其中的一些值可以使用 cap.set(propId,value) 来修改,value 就是你想要设置成的新值。例如,我可以使用 cap.get(3) 和 cap.get(4) 来查看每一帧的宽和高。
默认情况下得到的值是 640X480。但是我可以使用 ret=cap.set(3,320)和 ret=cap.set(4,240) 来把宽和高改成 320X240。注意:当你的程序报错时,你首先应该检查的是你的摄像头是否能够在其他程序中正常工作(比如 linux 下的 Cheese)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值