📜  讨论OpenCV(1)

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

OpenCV介绍

OpenCV是一个开源的计算机视觉库,它被广泛应用于计算机视觉的研究、产品开发和工业应用等领域。

安装OpenCV

安装OpenCV有多种方式,下面介绍两种常用的方法:

方法一:使用pip安装

在命令行中输入以下命令即可安装OpenCV:

pip install opencv-python
方法二:源码编译安装
  1. 下载OpenCV源码:从源码仓库中下载最新的OpenCV源码,例如:

    git clone https://github.com/opencv/opencv.git
    
  2. 编译OpenCV:进入OpenCV源码根目录,执行以下命令:

    mkdir build && cd build
    cmake ..
    make -j4
    make install
    
使用OpenCV
读取和显示图像

使用OpenCV读取和显示图像非常简单,以下是示例代码:

import cv2

# 读取图像
img = cv2.imread("test.jpg")

# 显示图像
cv2.imshow("Image", img)
cv2.waitKey()

其中,imread()函数用于读取图像,imshow()函数用于显示图像,waitKey()函数用于等待键盘输入,不加参数的话程序将一直等待。

图像处理

OpenCV提供了丰富的图像处理函数和算法,可以实现图像的滤波、变换、分割等操作。以下是部分常用的图像处理函数:

import cv2

# 读取图像
img = cv2.imread("test.jpg")

# 将图像转为灰度图
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)

# 对灰度图进行二值化
_, binary = cv2.threshold(gray, 127, 255, cv2.THRESH_BINARY)

# 显示二值化后的图像
cv2.imshow("Binary Image", binary)
cv2.waitKey()

# 对二值化后的图像进行边缘检测
edges = cv2.Canny(binary, 100, 200)

# 显示边缘检测后的图像
cv2.imshow("Edges Image", edges)
cv2.waitKey()
视频处理

OpenCV可以处理实时视频流,也可以处理已经录制好的视频文件。以下是部分常用的视频处理函数:

import cv2

# 读取已经录制好的视频文件
cap = cv2.VideoCapture("test.mp4")

while True:
    # 读取视频帧
    ret, frame = cap.read()
    
    if not ret:
        break
    
    # 将视频帧转为灰度图
    gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)

    # 显示灰度图
    cv2.imshow("Frame", gray)

    # 按q键退出程序
    if cv2.waitKey(25) & 0xff == ord("q"):
        break

# 释放资源
cap.release()
cv2.destroyAllWindows()
总结

OpenCV是一个非常强大的计算机视觉库,它有丰富的功能和算法,可以实现图像处理、视频处理等多种功能。本文简单介绍了OpenCV的安装和使用方法,但并未涉及完整的功能和算法,有需要的程序员可以自行查阅OpenCV官方文档。