背景减除技术与颜色模型在机器视觉中的应用

在自然或人造系统中,从场景背景中提取对象是一个常见的挑战。本文将探讨一种名为 AINECC 的个人项目,该项目采用一种新颖的方法来处理计算机视觉理论,并在智能进化系统中实现。该项目的目标是,通过连接到网络摄像头的低成本机械臂,能够自动将棋盘上的棋子放置到棋盘上的正确位置。

颜色模型

颜色模型是一种数学方法,用于描述电子传感器捕获的光的颜色。不同的颜色模型适用于不同的用途,研究人员通常寻求获得最佳的颜色准确性。在 AINECC 项目中,颜色模型将线性颜色范围 RGB 转换为正切曲线 RGB,使其适应范围 Real(0,1)。

颜色模型的转换公式如下:

xc = aTan(x/(y*z))/(Pi/2)

其中,x、y、z 分别代表 RGB 的分量值。

通常,通过将 RGB 值转换为 HSV(色调、饱和度、亮度)来获取对象的颜色,其中色调提供颜色值。然而,从对象中提取均匀颜色而不受到光照影响的最佳方法可能是处理每个像素向量 RGB:R(rx,ry,rz), G(gx,gy,gz), B(bx,by,bz)。这是一个非常困难的任务,许多其他研究都在处理这个问题。

通常,当 RGB 值较低或接近白色时,色调提取会受到噪声的影响。该项目尝试通过反转照明水平来解决这个问题,同时保持颜色水平的正确方向。

代码实现

源代码完全基于 OpenCV 库 2.0,包括图像和视频捕获。OpenCV 在管理相机设置或视频格式方面可能显得较弱,但在捕获或提取图像或帧方面非常简单,并且在处理捕获的图像方面非常强大。

该代码在 MFC(Microsoft Foundation Classes)平台下开发,并使用 OpenCV(Open Computer Vision Library)。应用程序有一个主对话框,该对话框有三个窗口:源、颜色模型和边缘检测。

1. 测试配置参数(或与之互动) 2. 点击 [Open Video] 3. 实时调整颜色模型和边缘参数 4. 点击 [Close Video] 或 [Exit] 以关闭或退出应用程序

在源窗口下方有一些参数,涉及“相机”或“图像”配置:

  • 相机:宽度、高度和 FPS 是典型的相机设置参数。如果幸运的话,FPS 可能会应用到相机上,如果没有,30 将在对话框启动后显示。
  • 颜色模型是“只读”参数。此代码仅适用于 RGB 8U(RGB24)相机,包括网络摄像头。
  • 图像:实际上有两个图像:颜色模型和边缘检测。通过编写“宽度”和“高度”参数,可以更改要处理的图像大小。

点击 [Open Video] 后,应用程序本身开始运行。代码“封装”在函数 “OnBnClickedButtonOpenVid” 内。为了保持其运行,使用了循环 “While(1)”。

在该函数内部,跳转到 3 个算法:

ainGetColor8U( IplImage* srcCo8Uarr, IplImage* dstCo8Uarr, int code); ainGetDifer8U( IplImage* srcDifArr, IplImage* dstDifArr, int code); aiSobel8UC3( CvArr* src, CvArr* dst, int xorder, int yorder, int aperture_size CV_DEFAULT(3));

捕获的图像样本。

  • 环境:房间照明:300 Lux
  • 对象照明:一个聚光灯 1000 lux
  • 颜色模型 RGB 8U:
  • 边缘检测。当中心像素周围的像素差异大于 2% 时,在边缘图像的同一位置放置一个黑点。
  • 颜色模型 RGB 到 BW。
沪ICP备2024098111号-1
上海秋旦网络科技中心:上海市奉贤区金大公路8218号1幢 联系电话:17898875485