Skip to content

What410802/XJTU-RMV-Task02

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 

Repository files navigation

遇到的问题及思考

Task 1

  • 筛选高亮区域

    首先使用了自适应二值化,但将 block size 在 200 以内调节,都未得到满意的图像,故更换为非自适应的函数,有所改观。最终阈值选取在一半左右。

Task 2

  • 图片中灯条区域过曝,难以使用蓝色灯光这一信息。

    由于真实情况使用工业相机,曝光可调,故可将代码中的 HSV_range 内容更改为真实灯光的蓝色。一方面可减少场内其他光源干扰,另一方面可以提高识别精度。本任务中,由于灯光中蓝色并不明显,故若转为灰度图再二值化,将可能更难精确分辨。故直接使用筛子 mask 筛出白色(灯光内部)和蓝色(灯光周围),得到与二值化效果相同的图像。

  • 图片中存在另一处高亮区域,干扰灯条筛选。

    引入“bounding box 填充度”变量,其值等于高亮面积除以 bounding box 面积。小于一半则认为此处高亮与通常灯光形状较为不同,剔除之。

  • 在得到较为理想的结果后,试去除高斯模糊环节,对结果没有影响。

    本任务中识别灯条主要靠灯条的与众不同的颜色和形状,而与画面中的噪点关系不大(最后都被面积、形状筛除)。

  • 识别的可能改进:

    图片中灯光还有内部为白色、周边为蓝色这一信息。对这类曝光不理想的图像中的灯条可以考虑蓝色+白色和仅白色分别筛取,套叠者即为目标灯条。

Appendix

文件说明

  • src/main_1.cpp: Source code of Task 1.
  • src/main_2.cpp: Source code of Task 2.
  • resources/output_1/*.png: Output images of Task 1.
  • resources/output_2/*.png: Output images of Task 2.

结果文件

  • resources/Screenshot 2025-09-21 232450.png: 任务1、任务2程序运行时终端的输出截图。如下:

    任务1、任务2程序运行时终端的输出截图

  • resources/output_1/feature_red_area.png 为任务1红色区域图像;resources/output_1/feature_red_mask.png 为红色区域的0-1矩阵图像。其余结果可由文件名得知。

  • resources/output_2/bounding_box_light_and_digit_original.png 为任务2包含灯条和数字 bounding box 的图像;resources/output_2/bounding_box_original.png 为仅框选灯条的图像。

Detailed Task Description

Task 1

  • 图像颜色空间转换

    • 转化为灰度图
    • 转化为HSV图片
  • 应用各种滤波操作

    • 应用均值滤波
    • 应用高斯滤波
  • 特征提取

    • 提取红色颜色区域

      • HSV方法
    • 寻找图像中红色的外轮廓

    • 寻找图像中红色的 bounding box

    • 计算轮廓的面积

    • 提取高亮颜色区域并进行图形学处理

      • 灰度化

      • 二值化

      • 膨胀

      • 腐蚀

      • 对处理后的图像进行漫水处理

  • 图像绘制

    • 绘制任意圆形方形和文字
    • 绘制红色的外轮廓
    • 绘制红色的 bounding box
  • 对图像进行处理

    • 图像旋转35度。
    • 图像裁剪为原图的左上⻆1/4。

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published