当前位置:首页>python>机器人视觉:图像处理与特征提取(含 Python 代码与图解)

机器人视觉:图像处理与特征提取(含 Python 代码与图解)

  • 2026-09-27 22:36:17
机器人视觉:图像处理与特征提取(含 Python 代码与图解)

基于 Peter Corke《Robotics, Vision & Control》(原第 11–12 章合并)上一篇:光、颜色与色彩空间下一篇:相机几何与立体视觉配套代码:chap11.ipynb + chap12.ipynb本文示例环境:Python 3.12 + opencv-python + numpy + matplotlib + scipy阅读对象:零基础新手

摘要: 本文将介绍数字图像的表示、基本运算与结构化特征提取,主要涵盖:

  • • 图像 = NumPy 数组;直方图、Monadic/Dyadic 运算、滤波与阈值
  • • 绿幕合成、边缘检测(Sobel/Canny)
  • • 区域特征:Lab k-means、连通域 Blob
  • • 直线(Hough)、点特征(Harris/ORB)、模板匹配
  • • 与 SLAM、立体匹配、目标定位的衔接

一、图像就是数组

import cv2rgb = cv2.imread("street.png")          # BGR, (H,W,3)gray = cv2.cvtColor(rgb, cv2.COLOR_BGR2GRAY)print(rgb[400, 200])                    # [row,col]=[y,x]
图1 RGB 与 R/G/B 通道

OpenCV 默认 BGR;matplotlib 显示需转 RGB。uint8 运算易溢出,先转 float32。


二、直方图与 Monadic 运算

图2 灰度直方图
图3 提亮、Gamma、阈值
类型
含义
例子
Monadic
单输入 f(x)
亮度、Gamma、Otsu
Dyadic
双输入 g(x,y)
差分、mask 合成

三、空间滤波与分割

blur = cv2.GaussianBlur(gray, (15, 15), 3)canny = cv2.Canny(gray, 80, 160)_, otsu = cv2.threshold(gray, 0, 255, cv2.THRESH_BINARY + cv2.THRESH_OTSU)
图4 高斯模糊
图5 Sobel 与 Canny 边缘
图6 Otsu 与自适应阈值
图7 绿幕合成

四、区域特征:分割与 Blob

Lab 空间 k-means 比 RGB 更符合感知;连通域给出 面积、包围盒、质心。

图8 Lab k-means 分割
图9 连通域与包围盒

用途: 按颜色+面积筛选番茄、零件计数、质心抓取。


五、直线与点特征

图10 Hough 直线
图11 Harris 角点
图12 ORB 关键点
特征
算法
用途
直线
Hough
车道线、标定板
角点
Harris
纹理丰富处
描述子
ORB/SIFT
跨帧匹配、VO

六、模板匹配

图13 NCC 模板匹配热力图

ZNCC 对线性亮度变化更鲁棒。书中 12.1.4 另介绍 Faster R-CNN / FCN 深度学习检测(需 GPU)。


七、小结

阶段
输出
预处理
灰度、滤波、边缘
分割
阈值、聚类、Blob
特征
线、角点、描述子

下一篇 回答:3D 点如何投影到像素?两幅图如何求深度?



下一篇:相机几何与立体视觉

最新文章

随机文章