【2021亚太赛】A题第一问 图像数据预处理与实现过程

发布时间:2022-06-29 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了【2021亚太赛】A题第一问 图像数据预处理与实现过程脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。

【2021亚太赛】A题第一问 图像数据预处理与实现过程

  • 内容概述
  • 1. 图1-1的预处理过程
    • 1.1 流程图
    • 1.2 代码
    • 1.3 效果
  • 2. 图1-2的预处理过程
    • 2.1 流程图
    • 2.2 代码
    • 2.3 效果
  • 3. 图1-3的预处理过程
    • 3.1 流程图
    • 3.2 代码
    • 3.3 效果
  • 4. 回答部分问题
    • 4.1 问题1
    • 4.2 问题2
    • 4.3 第三问的各项指标数据如何计算
  • 5. 小结

内容概述

前文链接:

内容比较齐全的原版思路: https://blog.csdn.net/weixin_43935696/article/details/121555038?spm=1001.2014.3001.5501 第一次梳理与勘误: https://bLOG.csdn.net/QQ_44319167/article/details/121637986

  之前比赛由于时间原因,使用了Photoshop进行了图片的预处理,感觉这样不是很妥,因此进行了如下的工作

  • 进行了第一问中三张图像的预处理过程
  • 对提取出来的轮廓进一步筛选、连接,得到我们想要的轮廓
  • 对大家的疑问进行整合,对上一版本思路进行补充

1. 图1-1的预处理过程

  图片1是属于比较标准的图片,但是却有一些毛刺,会影响到最后的精确计算,所以给它执行和图2相同的预处理步骤

1.1 流程图

【2021亚太赛】A题第一问 图像数据预处理与实现过程

1.2 代码

* 读取文件
read_image (Image, 'Pic1_1.bmp')
dev_close_window()
get_image_size(Image, Width, Height)
dev_oPEn_window_fIT_size(0, 0, Height, Height, -1, -1, WindowHandle)
dev_display(Image)
* 灰度处理
rgb1_to_gray (Image, GrayImage)
* 预处理的一些步骤
invert_image (GrayImage, ImageInvert)
emphasize (GrayImage, ImageEmphasize, Width, Height, 1)
scale_image (GrayImage, ImageScaled1, 0.5, 0)
scale_image (GrayImage, ImageScaled2, 1, 100)
* scale_image (GrayImage, ImageScaled3, 1, -100)
* 直方图
* equ_histo_image (ImageScaled2, ImageEquHisto)
* binary_threshold (GrayImage, Region, ';max_separability', 'light', UsedThreshold)
* 亚像素边缘检测
Edges_sub_pix (ImageScaled2, Edges, 'canny', 2, 25, 100)
* 二次筛选处理
select_contours_xld (Edges, SelectedContours, 'contour_length', 50, 3000, -0.5, 0.5)
union_adjacent_contours_xld (SelectedContours, UnionContours, 20 ,20, 'attr_keep')
* select_contours_xld (UnionContours, SelectedContours2, 'contour_length', 500, 10000, -0.5, 0.5)
* select_contours_xld (UnionContours, SelectedContours2, 'contour_length', 500, 3000, -0.5, 0.5)
* union_adjacent_contours_xld (SelectedContours2, UnionContours, 20 ,1, 'attr_keep')
* edges_sub_pix (ImageEquHisto, Edges, 'canny', 2, 20, 120)

1.3 效果

【2021亚太赛】A题第一问 图像数据预处理与实现过程

2. 图1-2的预处理过程

2.1 流程图

见图1-1的预处理过程流程图

2.2 代码

将注释改掉

2.3 效果

【2021亚太赛】A题第一问 图像数据预处理与实现过程

3. 图1-3的预处理过程

3.1 流程图

【2021亚太赛】A题第一问 图像数据预处理与实现过程

3.2 代码

read_image (Image, 'Pic1_3.bmp')
dev_close_window()
get_image_size(Image, Width, Height)
dev_open_window_fit_size(0, 0, Height, Height, -1, -1, WindowHandle)
dev_display(Image)
* 灰度处理
rgb1_to_gray (Image, GrayImage)
* 进一步预处理的一些步骤
invert_image (GrayImage, ImageInvert)
emphasize (GrayImage, ImageEmphasize, Width, Height, 1)
scale_image (GrayImage, ImageScaled1, 0.5, 0)
* scale_image (GrayImage, ImageScaled2, 1, 100)
* scale_image (GrayImage, ImageScaled3, 1, -100)
* 直方图
equ_histo_image (GrayImage, ImageEquHisto)
* binary_threshold (GrayImage, Region, 'max_separability', 'light', UsedThreshold)

* 亚像素边缘检测
edges_sub_pix (ImageEquHisto, Edges, 'canny', 2, 20, 120)

* 二次筛选处理
select_contours_xld (Edges, SelectedContours, 'contour_length', 50, 3000, -0.5, 0.5)
union_adjacent_contours_xld (SelectedContours, UnionContours, 20 ,1, 'attr_keep')
select_contours_xld (UnionContours, SelectedContours2, 'contour_length', 500, 10000, -0.5, 0.5)
* select_contours_xld (UnionContours, SelectedContours2, 'contour_length', 500, 3000, -0.5, 0.5)
* union_adjacent_contours_xld (SelectedContours2, UnionContours, 20 ,1, 'attr_keep')
* edges_sub_pix (ImageEquHisto, Edges, 'canny', 2, 20, 120)

3.3 效果

【2021亚太赛】A题第一问 图像数据预处理与实现过程

4. 回答部分问题

4.1 问题1

  • 怎么把检测出来的轮廓放在原图上
  • 首先点击这里清空图形窗口

    【2021亚太赛】A题第一问 图像数据预处理与实现过程

  • 之后先选择显示下方读取到的原图形
  • 最后再选择显示下方检测到的轮廓

    【2021亚太赛】A题第一问 图像数据预处理与实现过程

  • 即可得到如下图所示的效果

    【2021亚太赛】A题第一问 图像数据预处理与实现过程

4.2 问题2

  • 第二问出现的错误应该怎么修改

  • 第二问中按照第一版思路的做法,会讲下图中红色边缘的长度计算错误,值大概为4000多。因为多选中了一个外边框

  • 我们只需要在代码的最后一行,加入以下代码

edges_sub_pix (GrayImage, Edges2, 'canny', 2, 20, 80)

之后我们用第一问的方法即可求出轮廓的像素长度

4.3 第三问的各项指标数据如何计算

  • 这部分比较复杂,已经录制了视频,有时间会整理一版文字教程

5. 小结

  • 对之前欠缺的部分工作进行了补充,实现了图像的预处理,并对检测出的轮廓进行了进一步的操作,实现了本赛题第一问的求解。
  • 回答了大家复现实验中的几个问题
  • 类似于Photoshop中的图形学操作,也可以利用这个Halcon进行操作,时间原因本次不做演示

脚本宝典总结

以上是脚本宝典为你收集整理的【2021亚太赛】A题第一问 图像数据预处理与实现过程全部内容,希望文章能够帮你解决【2021亚太赛】A题第一问 图像数据预处理与实现过程所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。