Python OpenCV 库安装与基础使用方法详解
OpenCV 库在 Python 环境下的安装方式(pip 与 conda),涵盖图像读取、灰度转换、视频处理及人脸检测等核心功能示例。同时针对中文路径读取失败、视频编解码器缺失及显示窗口无法关闭等常见问题提供了具体的代码解决方案,适用于计算机视觉初学者快速上手。

OpenCV 库在 Python 环境下的安装方式(pip 与 conda),涵盖图像读取、灰度转换、视频处理及人脸检测等核心功能示例。同时针对中文路径读取失败、视频编解码器缺失及显示窗口无法关闭等常见问题提供了具体的代码解决方案,适用于计算机视觉初学者快速上手。

OpenCV(Open Source Computer Vision Library)是一个开源的计算机视觉和机器学习软件库。它由英特尔公司于 1999 年首次发布,目前由非盈利组织 OpenCV.org 维护。OpenCV 包含了超过 2500 种优化算法,涵盖从基础的图像处理到高级的机器学习应用。
pip install opencv-python
pip install opencv-contrib-python
conda install -c conda-forge opencv
import cv2
print(cv2.__version__)
import cv2
image = cv2.imread('example.jpg')
if image is None:
print("无法加载图像,请检查路径是否正确")
else:
cv2.imshow('Example Image', image)
cv2.waitKey(0)
cv2.destroyAllWindows()
height, width, channels = image.shape
gray_image = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
cv2.imwrite('gray_example.jpg', gray_image)
resized_image = cv2.resize(image, (640, 480))
cropped_image = image[100:300, 200:400]
face_cascade = cv2.CascadeClassifier(cv2.data.haarcascades + 'haarcascade_frontalface_default.xml')
faces = face_cascade.detectMultiScale(gray_image, scaleFactor=1.1, minNeighbors=5)
for (x, y, w, h) in faces:
cv2.rectangle(image, (x, y), (x+w, y+h), (255, 0, 0), 2)
cv2.imshow('Detected Faces', image)
cv2.waitKey(0)
video = cv2.VideoCapture('example.mp4')
if video.isOpened():
while True:
ret, frame = video.read()
if not ret: break
processed_frame = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
cv2.imshow('Video', processed_frame)
if cv2.waitKey(25) & 0xFF == ord('q'): break
video.release()
cv2.destroyAllWindows()
OpenCV 的底层实现不完全支持 Unicode 编码的路径,读取中文路径图片时可能失败。
import cv2
import numpy as np
def cv_imread(file_path):
cv_img = cv2.imdecode(np.fromfile(file_path, dtype=np.uint8), -1)
return cv_img
img = cv_imread("D:/测试/样例图片.jpg")
遇到"Could not find codec parameters"错误时,需安装 FFmpeg。
pip install ffmpeg-python
# Windows: 下载官方编译版本并添加到 PATH
# Linux: sudo apt-get install ffmpeg
# Mac: brew install ffmpeg
确保在 imshow() 后调用 waitKey() 函数。
cv2.imshow("Image Window", image)
cv2.waitKey(0)
cv2.destroyAllWindows()

微信公众号「极客日志」,在微信中扫描左侧二维码关注。展示文案:极客日志 zeeklog
使用加密算法(如AES、TripleDES、Rabbit或RC4)加密和解密文本明文。 在线工具,加密/解密文本在线工具,online
生成新的随机RSA私钥和公钥pem证书。 在线工具,RSA密钥对生成器在线工具,online
基于 Mermaid.js 实时预览流程图、时序图等图表,支持源码编辑与即时渲染。 在线工具,Mermaid 预览与可视化编辑在线工具,online
解析常见 curl 参数并生成 fetch、axios、PHP curl 或 Python requests 示例代码。 在线工具,curl 转代码在线工具,online
将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online
将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online