开启左侧

定位与一维测量

[复制链接]
liqing127061 发表于 2020-4-26 22:45:48 | 显示全部楼层 |阅读模式
test1.png
有个课题是测量这个黑带的宽度,我试了很久没找到方法。我本来是想定位到这个黑带的两排的圆,通过两排的圆拟合两条直线,求两条直线的距离。但是现在拟合所有圆出来后,发现圆的排序不规则,使用sort_contours_xld也不好用,于是乎下面的想法更实现不了。论坛的大神能不能给个方法,新手出来这个真心不太好!
 楼主| liqing127061 发表于 2020-4-26 22:47:21 | 显示全部楼层
图片会生成论坛的水印,大家处理的时候可能要截取下图片
 楼主| liqing127061 发表于 2020-4-27 10:37:13 | 显示全部楼层
昨天试了一个方法,用一个矩形框,框住左边圆的一部分,大部分黑带,然后逐行搜索,花费时间太长,有没有大神能提供更有效的方法啊
绝地武士 发表于 2020-4-27 11:09:03 | 显示全部楼层
应该初步是使用测量方法,获取两个圆中心作为长度,产生圆直径大小宽度的测量矩形,获得一对测量数据,依次进行每行产生一组,最后把对应数据拟合仿射矩形计算长宽!
jash 发表于 2020-4-27 11:40:19 | 显示全部楼层
同樓上建議
應使用量測
可參考下列程序
read_image (Image224218iglmqa2s6eyvgvvg, 'C:/jash/test51/224218iglmqa2s6eyvgvvg.png')
rgb1_to_gray (Image224218iglmqa2s6eyvgvvg, GrayImage)
gen_region_line (ROI_0, 24.5824, 152.589, 388.938, 167.449)
get_image_size (GrayImage, Width, Height)
create_metrology_model (MetrologyHandle)
set_metrology_model_image_size (MetrologyHandle, Width, Height)
add_metrology_object_line_measure (MetrologyHandle, 24.5824, 152.589, 388.938, 167.449, 10, 3, 0.4, 40, ['measure_transition','min_score'], ['positive',0.4], Index)
apply_metrology_model (GrayImage, MetrologyHandle)
get_metrology_object_result_contour (Contour, MetrologyHandle, 0, 'all', 1.5)
 楼主| liqing127061 发表于 2020-4-27 17:30:47 | 显示全部楼层
绝地武士 发表于 2020-4-27 11:09
应该初步是使用测量方法,获取两个圆中心作为长度,产生圆直径大小宽度的测量矩形,获得一对测量数据,依次 ...

谢谢,第一次做这种测量,你说的我还不是很懂,如果可以的话希望能给出几个关键的算子
 楼主| liqing127061 发表于 2020-4-27 17:33:15 | 显示全部楼层
jash 发表于 2020-4-27 11:40
同樓上建議
應使用量測
可參考下列程序

谢谢,这几个打算子还没用到过,不知道这种方法,我先去试试这种方法
BananaCheung 发表于 2020-5-3 12:08:15 | 显示全部楼层
精度不高时,可以这样做

  1. dev_update_off ()
  2. read_image (Image, 'image.png')
  3. rgb1_to_gray (Image, GrayImage)
  4. get_image_size (GrayImage, Width, Height)
  5. dev_close_window ()
  6. dev_open_window_fit_image (GrayImage, 0, 0, -1, -1, WindowHandle)
  7. * gen_rectangle1 (Rectangle, 0, 0, Height-30, Width)
  8. crop_rectangle1 (GrayImage, ImagePart, 0, 0, Height-30, Width)
  9. threshold (ImagePart, Region, 128, 255)
  10. dilation_circle (Region, RegionDilation, 4.5)
  11. connection (RegionDilation, ConnectedRegions)
  12. shape_trans (ConnectedRegions, RegionTrans, 'convex')
  13. erosion_circle (RegionTrans, RegionErosion, 4.5)
  14. select_obj (RegionErosion, ObjectSelected1, 1)
  15. select_obj (RegionErosion, ObjectSelected2, 2)
  16. distance_rr_min (ObjectSelected1, ObjectSelected2, MinDistance, Row1, Column1, Row2, Column2)
  17. dev_display (GrayImage)
  18. dev_set_draw ('margin')
  19. dev_set_color ('red')
  20. dev_display (RegionErosion)
  21. dev_set_color ('green')
  22. disp_line (WindowHandle, Row1, Column1, Row2, Column2)
  23. disp_cross (WindowHandle, [Row1, Row2], [Column1,Column2], 30, rad(45))
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表