匠心精神 - 良心品质腾讯认可的专业机构-IT人的高薪实战学院

咨询电话:4000806560

计算机视觉入门指南:OpenCV在Linux上的基本应用

计算机视觉入门指南:OpenCV在Linux上的基本应用

计算机视觉是人工智能领域的一个热门方向,OpenCV作为计算机视觉的重要工具库,已经成为了许多开发者在实践中的首选。本文将为大家介绍如何在Linux系统上使用OpenCV进行基本应用。

1. 安装OpenCV

首先需要安装OpenCV,可以使用以下命令:

```
sudo apt-get install libopencv-dev python-opencv
```

2. 打开并显示图片

使用OpenCV打开并显示图片的代码如下:

```
import cv2

img = cv2.imread('test.png')
cv2.imshow('image', img)
cv2.waitKey(0)
cv2.destroyAllWindows()
```

上述代码中,cv2.imread()函数接收图片路径作为参数,返回一个numpy数组,cv2.imshow()函数显示图片,cv2.waitKey()函数等待任意键按下,cv2.destroyAllWindows()函数关闭所有窗口。

3. 图像处理

OpenCV提供了丰富的图像处理函数,包括图像缩放、旋转、颜色空间转换等。以下是对图像进行缩放和旋转的示例代码:

```
import cv2

img = cv2.imread('test.png')

# 缩放
resized = cv2.resize(img, (int(img.shape[1] / 2), int(img.shape[0] / 2)))

# 旋转
rows, cols = img.shape[:2]
M = cv2.getRotationMatrix2D((cols / 2, rows / 2), 45, 1)
rotated = cv2.warpAffine(img, M, (cols, rows))

cv2.imshow('resized', resized)
cv2.imshow('rotated', rotated)
cv2.waitKey(0)
cv2.destroyAllWindows()
```

上述代码中,cv2.resize()函数接收原始图像和目标大小作为参数,返回缩放后的图像,cv2.getRotationMatrix2D()函数接收旋转中心、旋转角度和缩放比例作为参数,返回旋转矩阵,cv2.warpAffine()函数接收原始图像、旋转矩阵和输出图像大小作为参数,返回旋转后的图像。

4. 视频处理

OpenCV还可以处理视频,以下是一个读取视频并进行边缘检测的示例代码:

```
import cv2

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

while cap.isOpened():
    ret, frame = cap.read()
    if ret:
        gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
        edges = cv2.Canny(gray, 100, 200)
        cv2.imshow('frame', edges)
        if cv2.waitKey(25) & 0xFF == ord('q'):
            break
    else:
        break

cap.release()
cv2.destroyAllWindows()
```

上述代码中,cv2.VideoCapture()函数接收视频路径作为参数,返回一个VideoCapture对象,cap.isOpened()函数判断视频是否成功打开,cap.read()函数读取视频帧,cv2.cvtColor()函数将BGR格式图像转换为灰度图像,cv2.Canny()函数进行边缘检测,cv2.waitKey()函数等待25毫秒,如果按下“q”键则退出循环。

总结

本文介绍了如何在Linux系统上使用OpenCV进行基本应用,包括打开并显示图片、图像处理和视频处理。OpenCV提供了丰富的图像处理函数,开发者可以根据需求灵活运用。