|
|

OpenCV(Open Source Computer Vision Library)是最流行的计算机视觉库,提供了3000多个算法函数,广泛应用于工业视觉检测、机器人视觉、自动驾驶等领域。本文将介绍OpenCV的核心功能及其在工控视觉检测中的应用。
一、OpenCV简介

OpenCV最初由Intel开发,现在由OpenCV.org维护。它支持C++、Python、Java等多种语言,跨平台运行。主要模块包括:core(核心数据结构)、imgproc(图像处理)、calib3d(相机标定)、features2d(特征检测)、objdetect(目标检测)、dnn(深度学习推理)。
二、基本图像操作

读取图像:cv2.imread('image.jpg'),注意OpenCV使用BGR格式而非RGB。显示图像:cv2.imshow()配合cv2.waitKey()。保存图像:cv2.imwrite()。
三、图像预处理
图像预处理是视觉检测的关键步骤,目的是增强有用信息、抑制噪声。
灰度化:cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
二值化:cv2.threshold(gray, 127, 255, cv2.THRESH_BINARY)
高斯滤波:cv2.GaussianBlur(img, (5,5), 0)
形态学操作:cv2.morphologyEx()进行腐蚀、膨胀、开运算、闭运算。
四、边缘与轮廓检测
Canny边缘检测:cv2.Canny(gray, 50, 150),是最常用的边缘检测方法。
轮廓检测:cv2.findContours()查找轮廓,cv2.contourArea()计算面积,cv2.arcLength()计算周长,cv2.boundingRect()获取边界矩形。
五、工业视觉检测案例
以PCB焊点检测为例,完整流程包括:图像采集→灰度化→高斯滤波去噪→颜色分割→形态学处理→轮廓检测→缺陷判定→结果标注。
通过计算焊点的圆度(4πA/P²),可以判断焊接质量。圆度接近1表示焊点饱满,圆度较小表示存在缺陷。
六、与深度学习结合
OpenCV的dnn模块可以加载预训练的深度学习模型进行推理,结合传统视觉算法和深度学习,发挥各自优势。
OpenCV是工业视觉检测的必备工具,提供了从图像预处理到特征检测的完整功能。希望本文能帮助工控工程师快速上手。 |
|