3. Python与OpenCV环境搭建:Anaconda环境配置、OpenCV库安装、IDE选择、第一个图像读取程序
说实话,环境搭建这事儿,看着简单,但坑是真不少。我带过不少新人,十有八九第一周都在跟各种报错信息死磕。今天咱们就把这套流程捋顺了,你照着做,基本不会出问题。
3.1 为什么选Anaconda?
你可能会问:直接装个Python不行吗?当然行。但做工业视觉项目,你往往需要同时维护好几个项目——有的用OpenCV 4.5,有的用4.8,有的还得兼容旧版。这时候Anaconda的虚拟环境就派上用场了。
我个人习惯是:每个项目建一个独立环境。这样就算某个环境搞崩了,也不影响其他项目。我在工厂现场调试时,经常需要在不同版本间切换,Anaconda帮我省了不少事。
- 环境隔离,互不干扰
- 预装大量科学计算库
- 跨平台支持(Windows/Linux/Mac)
- 包管理方便(conda install)
3.2 Anaconda安装与配置
去官网下载对应系统的安装包,我建议选Python 3.8或3.9版本。别追新,工业场景讲究稳定。
安装时注意两点:
- 勾选"Add Anaconda to PATH"——虽然安装程序会警告,但加上确实方便
- 安装路径不要有中文和空格——血的教训,我之前吃过这亏
装完后,打开终端(Windows用Anaconda Prompt),验证一下:
conda --version
python --version
能看到版本号,说明装好了。
3.3 创建虚拟环境
咱们专门为工业视觉课程建一个环境:
conda create -n industrial_vision python=3.9
conda activate industrial_vision
环境名字你随意,我习惯用项目名命名。激活后,终端前面会出现 (industrial_vision) 字样,表示你已经在虚拟环境里了。
3.4 OpenCV库安装
OpenCV的安装方式有好几种,我推荐用conda安装,依赖关系处理得更好:
conda install opencv-python
或者用pip:
pip install opencv-python
验证安装:
python -c "import cv2; print(cv2.__version__)"
如果输出了版本号(比如4.8.0),恭喜你,装好了。
opencv-contrib-python 这个扩展包,它包含了SIFT、SURF等专利算法模块。标准版不带这些。
pip install opencv-contrib-python
3.5 IDE选择:VS Code vs PyCharm
这两个我都用过,说说我的感受:
| 特性 | VS Code | PyCharm |
|---|---|---|
| 启动速度 | 快 | 慢 |
| 插件生态 | 丰富,可定制 | 内置功能全 |
| 调试体验 | 够用 | 强大 |
| 资源占用 | 低 | 高 |
| 适合场景 | 轻量开发、脚本调试 | 大型项目、重构频繁 |
我个人更倾向VS Code,轻量、启动快,配合Python插件和Jupyter插件,做图像处理实验很方便。但如果你做的是大型工业视觉软件,PyCharm的代码分析和重构能力确实更强。
3.6 第一个图像读取程序
好了,环境搭好了,咱们写个程序试试手。新建一个 read_image.py 文件:
import cv2
# 读取图像
img = cv2.imread('test.jpg')
# 检查是否读取成功
if img is None:
print("图像读取失败,请检查文件路径")
else:
print(f"图像尺寸:{img.shape}")
print(f"图像类型:{img.dtype}")
# 显示图像
cv2.imshow('My First Image', img)
cv2.waitKey(0) # 等待按键
cv2.destroyAllWindows()
运行前,确保 test.jpg 和脚本在同一目录下。如果图像读取成功,你会看到一张图片弹出来,按任意键关闭。
- 图像读取失败(img is None):路径问题,用路径试试
- 窗口一闪而过:没加
cv2.waitKey(0) - 中文路径报错:OpenCV不支持中文路径,用英文
我曾经在客户现场调试时,就因为图像路径里带了个中文空格,折腾了半小时。后来学乖了,所有路径都只用英文和数字。
3.7 本章知识体系
下面这张图帮你理清今天的内容结构:
3.8 避坑指南
最后,分享几个我踩过的坑:
- 版本冲突:我曾经同时装了OpenCV 4.5和4.8,结果import时报错。后来用虚拟环境彻底解决了。
- 路径问题:在Windows下,路径分隔符用
\\或/,别混用。我习惯统一用/,跨平台兼容。 - 权限问题:在Linux服务器上,别用sudo pip install,容易搞乱系统Python。用虚拟环境,一切安好。
好了,环境搭好了,代码也跑通了。接下来你就可以开始真正的图像处理之旅了。