Python安装OpenCV

Python安装OpenCV

Python安装OpenCV

在计算机视觉和图像处理领域,OpenCV是一个非常流行的开源库,它提供了丰富的图像处理和计算机视觉算法。本文将介绍如何在Python中安装OpenCV,并提供一些示例代码来演示其基本用法。

安装OpenCV

在Python中安装OpenCV可以通过pip来完成。首先,确保你的Python环境已经安装了pip。然后,打开命令行窗口,运行以下命令来安装OpenCV

pip install opencv-python

安装完成后,你就可以在Python中使用OpenCV库了。

示例代码

1. 加载并显示图像

import cv2

# 读取图像
img = cv2.imread('image.jpg')

# 显示图像
cv2.imshow('Image', img)
cv2.waitKey(0)
cv2.destroyAllWindows()

2. 灰度化图像

import cv2

# 读取图像
img = cv2.imread('image.jpg')

# 灰度化
gray_img = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)

# 显示灰度图像
cv2.imshow('Gray Image', gray_img)
cv2.waitKey(0)
cv2.destroyAllWindows()

3. 保存图像

import cv2

# 读取图像
img = cv2.imread('image.jpg')

# 保存图像
cv2.imwrite('saved_image.jpg', img)

4. 绘制图像

import cv2
import numpy as np

# 创建一个黑色图像
img = np.zeros((512, 512, 3), np.uint8)

# 绘制直线
cv2.line(img, (0, 0), (511, 511), (255, 0, 0), 5)

# 显示图像
cv2.imshow('Image', img)
cv2.waitKey(0)
cv2.destroyAllWindows()

5. 绘制矩形

import cv2
import numpy as np

# 创建一个黑色图像
img = np.zeros((512, 512, 3), np.uint8)

# 绘制矩形
cv2.rectangle(img, (100, 100), (400, 400), (0, 255, 0), 3)

# 显示图像
cv2.imshow('Image', img)
cv2.waitKey(0)
cv2.destroyAllWindows()

6. 绘制圆形

import cv2
import numpy as np

# 创建一个黑色图像
img = np.zeros((512, 512, 3), np.uint8)

# 绘制圆形
cv2.circle(img, (256, 256), 100, (0, 0, 255), -1)

# 显示图像
cv2.imshow('Image', img)
cv2.waitKey(0)
cv2.destroyAllWindows()

7. 绘制文本

import cv2
import numpy as np

# 创建一个黑色图像
img = np.zeros((512, 512, 3), np.uint8)

# 绘制文本
cv2.putText(img, 'Hello, OpenCV!', (100, 100), cv2.FONT_HERSHEY_SIMPLEX, 1, (255, 255, 255), 2)

# 显示图像
cv2.imshow('Image', img)
cv2.waitKey(0)
cv2.destroyAllWindows()

8. 图像平滑

import cv2

# 读取图像
img = cv2.imread('image.jpg')

# 图像平滑
smooth_img = cv2.GaussianBlur(img, (5, 5), 0)

# 显示平滑后的图像
cv2.imshow('Smooth Image', smooth_img)
cv2.waitKey(0)
cv2.destroyAllWindows()

9. 边缘检测

import cv2

# 读取图像
img = cv2.imread('image.jpg')

# 边缘检测
edges = cv2.Canny(img, 100, 200)

# 显示边缘图像
cv2.imshow('Edges', edges)
cv2.waitKey(0)
cv2.destroyAllWindows()

10. 图像旋转

import cv2
import numpy as np

# 读取图像
img = cv2.imread('image.jpg')

# 获取图像尺寸
rows, cols = img.shape[:2]

# 旋转图像
M = cv2.getRotationMatrix2D((cols/2, rows/2), 45, 1)
rotated_img = cv2.warpAffine(img, M, (cols, rows))

# 显示旋转后的图像
cv2.imshow('Rotated Image', rotated_img)
cv2.waitKey(0)
cv2.destroyAllWindows()

11. 图像缩放

import cv2

# 读取图像
img = cv2.imread('image.jpg')

# 缩放图像
resized_img = cv2.resize(img, None, fx=0.5, fy=0.5)

# 显示缩放后的图像
cv2.imshow('Resized Image', resized_img)
cv2.waitKey(0)
cv2.destroyAllWindows()

12. 图像腐蚀

import cv2
import numpy as np

# 读取图像
img = cv2.imread('image.jpg')

# 创建一个腐蚀核
kernel = np.ones((5, 5), np.uint8)

# 图像腐蚀
eroded_img = cv2.erode(img, kernel, iterations=1)

# 显示腐蚀后的图像
cv2.imshow('Eroded Image', eroded_img)
cv2.waitKey(0)
cv2.destroyAllWindows()

13. 图像膨胀

import cv2
import numpy as np

# 读取图像
img = cv2.imread('image.jpg')

# 创建一个膨胀核
kernel = np.ones((5, 5), np.uint8)

# 图像膨胀
dilated_img = cv2.dilate(img, kernel, iterations=1)

# 显示膨胀后的图像
cv2.imshow('Dilated Image', dilated_img)
cv2.waitKey(0)
cv2.destroyAllWindows()

14. 图像阈值化

import cv2

# 读取灰度图像
img = cv2.imread('image.jpg', 0)

# 图像阈值化
ret, thresh_img = cv2.threshold(img, 127, 255, cv2.THRESH_BINARY)

# 显示阈值化后的图像
cv2.imshow('Threshold Image', thresh_img)
cv2.waitKey(0)
cv2.destroyAllWindows()

15. 图像轮廓检测

import cv2

# 读取灰度图像
img = cv2.imread('image.jpg', 0)

# 图像阈值化
ret, thresh_img = cv2.threshold(img, 127, 255, cv2.THRESH_BINARY)

# 查找图像轮廓
contours, hierarchy = cv2.findContours(thresh_img, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE)

# 绘制轮廓
cv2.drawContours(img, contours, -1, (0, 255, 0), 3)

# 显示带有轮廓的图像
cv2.imshow('Contour Image', img)
cv2.waitKey(0)
cv2.destroyAllWindows()

16. 图像直方图### 16. 图像直方图均衡化

import cv2

# 读取灰度图像
img = cv2.imread('image.jpg', 0)

# 直方图均衡化
equalized_img = cv2.equalizeHist(img)

# 显示直方图均衡化后的图像
cv2.imshow('Equalized Image', equalized_img)
cv2.waitKey(0)
cv2.destroyAllWindows()

17. 图像模糊

import cv2

# 读取图像
img = cv2.imread('image.jpg')

# 图像模糊
blurred_img = cv2.blur(img, (5, 5))

# 显示模糊后的图像
cv2.imshow('Blurred Image', blurred_img)
cv2.waitKey(0)
cv2.destroyAllWindows()

18. 图像边缘增强

import cv2

# 读取图像
img = cv2.imread('image.jpg')

# 边缘增强
kernel = np.array([[0, -1, 0], [-1, 5, -1], [0, -1, 0]])
enhanced_img = cv2.filter2D(img, -1, kernel)

# 显示边缘增强后的图像
cv2.imshow('Enhanced Image', enhanced_img)
cv2.waitKey(0)
cv2.destroyAllWindows()

19. 图像旋转校正

import cv2

# 读取图像
img = cv2.imread('image.jpg')

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

# 检测直线
edges = cv2.Canny(gray_img, 50, 150, apertureSize=3)
lines = cv2.HoughLines(edges, 1, np.pi/180, 200)

# 根据直线角度进行旋转校正
angle = lines[0][0][1] * 180 / np.pi
rotated_img = cv2.rotate(img, cv2.ROTATE_90_CLOCKWISE if angle > 45 else cv2.ROTATE_90_COUNTERCLOCKWISE)

# 显示旋转校正后的图像
cv2.imshow('Rotated Image', rotated_img)
cv2.waitKey(0)
cv2.destroyAllWindows()

20. 图像拼接

import cv2

# 读取两张图像
img1 = cv2.imread('image1.jpg')
img2 = cv2.imread('image2.jpg')

# 拼接图像
result = cv2.hconcat([img1, img2])

# 显示拼接后的图像
cv2.imshow('Merged Image', result)
cv2.waitKey(0)
cv2.destroyAllWindows()

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程