第3章:OpenCV核心库安装
好,咱们继续。上一章我们把Python环境搭好了,现在该请出主角——OpenCV了。
说实话,我第一次装OpenCV的时候,踩了不少坑。那时候网上教程五花八门,有的让编译源码,有的让装一堆依赖。折腾半天,最后发现其实一行命令就能搞定。嗯,今天我就把最稳的安装方法教给你。
3.1 用pip安装opencv-python
这是最主流的方式,也是我推荐新手用的。说白了,pip就是Python的包管理器,跟手机上的应用商店差不多。
打开你的终端(Windows用CMD或PowerShell,Mac/Linux用终端),直接敲下面这行命令:
pip install opencv-python
如果你用的是Python 3,有些系统可能需要用pip3:
pip3 install opencv-python
我个人习惯在虚拟环境里装,这样不会污染全局的Python。不过你要是图省事,直接装全局也行。
安装过程大概几十秒到几分钟,取决于你的网速。你会看到一堆输出,最后出现Successfully installed就说明成了。
pip install opencv-python -i https://pypi.tuna.tsinghua.edu.cn/simple
3.2 再装opencv-contrib-python
装完上面的基础包,我建议你顺手把扩展包也装了。为什么?
opencv-python只包含核心模块。而opencv-contrib-python额外带了SIFT、SURF这些特征提取算法,还有一些实验性的功能。我在做项目时,好几次发现基础包不够用,还得回头补装扩展包。你想想看,一次装完多省事。
pip install opencv-contrib-python
注意:这两个包不要混着装。如果你先装了opencv-python,再装opencv-contrib-python,后者会覆盖前者。所以直接装扩展包就行,它已经包含了核心功能。
pip uninstall opencv-python opencv-contrib-python
pip install opencv-contrib-python
3.3 验证安装是否成功
装完了,怎么知道好不好使?写两行代码验证一下。
打开Python交互环境(终端里敲python),或者新建一个.py文件:
import cv2
print(cv2.__version__)
如果输出类似4.8.1这样的版本号,恭喜你,安装成功了!
我一般还会多测一步,看看能不能读取图片:
import cv2
# 读取一张图片(这里用OpenCV自带的测试图)
img = cv2.imread('test.jpg')
if img is not None:
print(f"图片尺寸: {img.shape}")
else:
print("图片读取失败,请检查路径")
你可能会问:没有图片怎么办?其实OpenCV自带了一些测试图片,在安装目录的samples/data文件夹里。不过最简单的方法,是自己随便拍一张或者下载一张。
3.4 检查扩展模块是否可用
既然装了contrib包,咱们得确认一下扩展功能是不是真的能用。拿SIFT特征检测来试试:
import cv2
# 尝试创建SIFT检测器
try:
sift = cv2.SIFT_create()
print("SIFT模块可用,contrib包安装正确")
except AttributeError as e:
print("SIFT不可用,可能是contrib包没装好")
print(e)
如果输出"SIFT模块可用,contrib包安装正确",那就稳了。
cv2.xfeatures2d.SIFT_create()。不过现在都2025年了,建议直接用最新版。
3.5 常见问题与解决方案
安装过程中,你可能会遇到一些问题。我把常见的列出来:
| 问题 | 原因 | 解决方法 |
|---|---|---|
| pip命令找不到 | Python没加到环境变量 | 重新安装Python,勾选"Add Python to PATH" |
| 安装报错:Microsoft Visual C++ 14.0 is required | 缺少C++编译工具 | 下载安装"Microsoft C++ Build Tools" |
| 导入cv2报错:DLL load failed | 系统缺少VC++运行库 | 安装Visual C++ Redistributable |
| 版本太旧 | pip没更新 | 先执行pip install --upgrade pip |
说实话,大部分问题都是环境问题。Windows用户尤其要注意VC++运行库,我当年就被这个坑过——装了半天,最后发现少装了个运行库。
3.6 验证OpenCV基本功能
最后,咱们来点实际的。写个小程序,验证OpenCV的核心功能是否正常:
import cv2
import numpy as np
# 1. 创建一个空白图像
img = np.zeros((300, 300, 3), dtype=np.uint8)
# 2. 画一个红色的圆
cv2.circle(img, (150, 150), 100, (0, 0, 255), -1)
# 3. 显示图像
cv2.imshow('Test Window', img)
cv2.waitKey(0)
cv2.destroyAllWindows()
# 4. 保存图像
cv2.imwrite('test_output.png', img)
print("图像已保存")
运行这段代码,你会看到一个窗口弹出,里面有个红色的圆。按任意键关闭窗口,当前目录下会生成一个test_output.png文件。
如果这些都能正常执行,说明你的OpenCV环境已经搭建完毕,可以开始正式学习了。
好了,这一章的内容就到这里。OpenCV装好了,下一章咱们就开始玩真的——读取摄像头、处理视频流。那才是OpenCV真正发力的地方。