Python opencv图像处理

前言

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()                  #关闭窗口

图像处理会接着写。

发布了31 篇原创文章 · 获赞 22 · 访问量 9487

猜你喜欢

转载自blog.csdn.net/richowe/article/details/105569173