前言
opencv是一个强大的图像处理和计算机视觉库,最近有学图像处理这门课程,对图像处理的理解还是一头雾,想起python也可以做图像处理,想动手做一下图像处理,这里只是做简单的入门。
安装
pip install opencv-python
如果安装失败可以更换一下镜像源,或者用pycharm和anaconda等软件的内部库直接安装。
打开摄像头
cv2.CAP_DSHOW 加上这个参数,保存图像的的时候就不会出报错
import cv2
def cap_open():
capture = cv2.VideoCapture(0,cv2.CAP_DSHOW) # 打开摄像头,0代表的本地摄像头
while True:
ref, img = cap.read() # ret为返回值,img为当前帧
img1 = cv2.flip(img,1) # 图像反转,1为左右对还
cv2.imshow("picture", img1) # 以‘picture’窗口名打开图像
c = cv2.waitKey(30)&0xff # 等待30ms显示图像,若过程中按“Esc”退出
if c == 27:
cap.release() # 释放摄像头
break
cap_open()
cv2.waitKey()
cv2.destroyAllWindows() # 关闭摄像头
拍照
import cv2
import time
def get_photo():
cap = cv2.VideoCapture(0, cv2.CAP_DSHOW) # 打开摄像头
ret, img = cap.read() # ret为返回值,img为当前帧
img1 = cv2.flip(img, 1) # 图像反转,1为左右对换
time.sleep(2) # 延迟2s
cv2.imwrite("richowe.jpg", img1) # 保存停止帧图
cap.release()
if __name__ == '__main__':
get_photo()
增加窗口显示,按键拍照
import cv2 #导入opencv库
def take_photo():
cap=cv2.VideoCapture(0,cv2.CAP_DSHOW) #打开摄像头
while True:
ret,img=cap.read() # ret为返回值,img为当前帧
img1=cv2.flip(img,1) #图像反转,1为左右对换,-1为上下对换
cv2.imshow("richowe",img1) #显示图片在窗口上
if 27==cv2.waitKey(10): #按下esc键拍照,退出
cv2.imwrite("richowe.jpg",img1) #保存停止帧图片
cap.release()
break
if __name__ == '__main__':
cv2.namedWindow("richowe") #创建窗口
take_photo()
cv2.destroyAllWindows() #关闭窗口
图像处理会接着写。