📜  OpenCV-编程示例(1)

📅  最后修改于: 2023-12-03 15:03:22.874000             🧑  作者: Mango

OpenCV编程示例

介绍

OpenCV是一个基于开源许可的计算机视觉库,它可以用于识别目标、跟踪目标、人脸检测、图像处理等多个领域。OpenCV支持多种编程语言,如C++、Python、Java等,本文将以Python为例,介绍几个OpenCV的编程示例。

安装

首先,需要安装OpenCV库,可以使用pip命令进行安装:

pip install opencv-python
示例
读取图像

OpenCV可以读取并处理多种图像格式,如png、jpg、bmp等,使用cv2.imread()函数进行读取:

import cv2

img = cv2.imread('lena.jpg')
cv2.imshow('image',img)
cv2.waitKey(0)
cv2.destroyAllWindows()

其中,cv2.imshow()函数可以显示读取的图像,cv2.waitKey()函数定义等待时间,0表示一直等待,cv2.destroyAllWindows()函数可关闭所有的窗口。

读取视频

OpenCV支持读取视频和摄像头,使用cv2.VideoCapture()函数进行读取:

import cv2

cap = cv2.VideoCapture('test.mp4')

while(cap.isOpened()):
    ret, frame = cap.read()
    if ret==True:
        cv2.imshow('frame',frame)
        if cv2.waitKey(25) & 0xFF == ord('q'):
            break
    else:
        break

cap.release()
cv2.destroyAllWindows()

在这个示例中,cv2.VideoCapture()函数读取test.mp4视频,并读取每一帧并显示出来,直到按下q键退出。

图像边缘检测

边缘检测是计算机视觉中的一个非常重要的概念,它可用于图像分割、目标检测等场景。OpenCV提供多种边缘检测算法,如Canny算法,使用cv2.Canny()函数进行边缘检测:

import cv2
import numpy as np

img = cv2.imread('lena.jpg',0)
edges = cv2.Canny(img,100,200)

cv2.imshow('edges',edges)
cv2.waitKey(0)
cv2.destroyAllWindows()

在这个示例中,cv2.Canny()函数将图像转换为边缘,并使用cv2.imshow()函数显示边缘检测结果。

图像模糊处理

图像模糊处理也是图像处理中的一个常用操作。OpenCV中提供多种模糊处理算法,如高斯模糊、中值模糊等,使用cv2.GaussianBlur()函数进行模糊处理:

import cv2

img = cv2.imread('lena.jpg')
blur = cv2.GaussianBlur(img,(5,5),0)

cv2.imshow('blur',blur)
cv2.waitKey(0)
cv2.destroyAllWindows()

在这个示例中,cv2.GaussianBlur()函数将图像进行高斯模糊,并使用cv2.imshow()函数显示模糊处理结果。

结语

本文介绍了几个OpenCV的编程示例,涵盖了图像处理、视频处理等多种场景。读者可以根据自己的需求,选择合适的示例进行学习和应用。