【halcon】编程技巧:鼠标擦除

【大家好,我是机器视觉_Explorer,持续分享机器视觉相关项目和案例,分享机器视觉相关技术,欢迎一起交流!】

本文使用halcon实现鼠标擦除的功能,可用于优化创建模板。

  1. 框选模板
  1. 区域擦除

上述创建的模板区域有很多干扰,我们想去除,比如只提取芯片区域,进行鼠标擦除

  1. 区域擦除后的模板
  1. 源码

    用鼠标擦除后的区域创建模板
    dev_open_window(0, 0, 512, 512, 'black', WindowHandle)
    dev_set_draw('margin')
    read_image (Image, 'printer_chip/printer_chip_01')
    *选择区域
    disp_message (WindowHandle, '框选一个区域,右键结束', 'window', 12, 12, 'red', 'false')
    draw_rectangle1 (WindowHandle, Row1, Column1, Row2, Column2)
    gen_rectangle1 (Rectangle, Row1, Column1, Row2, Column2)
    reduce_domain (Image, Rectangle, ImageReduced)

    • dev_clear_window ()
      dev_display (ImageReduced)
      dev_display(Rectangle)
      dev_set_draw('fill')
      橡皮擦功能,特征屏蔽*********************************
      *橡皮擦大小
      EraserSize:=50
      *橡皮擦形状
      EraserType:='rectangle'
      gen_empty_obj(region_removeds)
      *橡皮擦路过的坐标集
      Rows := []
      Cols := []
      *擦除工作
      Button:=0
      set_display_font (WindowHandle, 26, 'mono', 'true', 'false')
      disp_message (WindowHandle, '按下鼠标进行擦除功能,松开鼠标将结束', 'window', 12, 12, 'red', 'false')
      while (Button == 0)
      get_mbutton (WindowHandle, Row, Column, Button)
      while (Button == 1)
      get_mposition (WindowHandle, Row, Column, Button)
      Rows := [Rows,Row]
      Cols := [Cols,Column]
      *生成橡皮擦擦过的区域
      if(EraserType=='rectangle')
      gen_rectangle2 (Eraser,Row, Column,0, EraserSize,EraserSize)
      else
      gen_circle (Eraser, Row, Column, EraserSize)
      endif
      *橡皮擦区域合并
      union2(region_removeds,Eraser,region_removeds)
      endwhile
      endwhile
      *区域相减
      difference (ImageReduced, region_removeds, RegionDifference)
      reduce_domain (ImageReduced, RegionDifference, ImageReduced)

    创建模板****************************************************
    create_shape_model (ImageReduced, 'auto', -0.39, 0.79, 'auto', 'auto', 'use_polarity', 'auto', 'auto', ModelID)
    find_shape_model (Image, ModelID, rad(-180), rad(180), 0.5, 1, 0.5, 'least_squares', 0, 0.9, Row, Column, Angle, Score)
    *获取模板轮廓
    get_shape_model_contours (ModelContours, ModelID, 1)
    dev_clear_window ()
    dev_display (Image)
    dev_set_line_width (2)
    *将模板映射到目标上
    vector_angle_to_rigid (0, 0, 0, Row, Column, Angle, HomMat2D)
    affine_trans_contour_xld (ModelContours, ContoursAffinTrans, HomMat2D)

相关推荐
微尘hjx6 小时前
【ByteTrack 04】多轨迹算法ByteTrack改进点
算法·yolo·目标检测·目标跟踪·bytetrack·ultralytics·车跟踪
云和数据.ChenGuang6 小时前
Python 重写(Override)深度解析:从 MRO 到 super() 的完整机制
java·开发语言·人工智能·python·langchain·1024程序员节
西西木科技丨Shopify开发机构7 小时前
CalDigit TS4案例:AI产品图的Shopify整站接入与验收
人工智能·shopify·独立站
2601_965448877 小时前
AI视频制作:做系列节气民俗视频音色不统一,AI 音色克隆省事的方法
人工智能·机器学习·音视频
美狐美颜SDK开放平台7 小时前
视频美颜SDK试用DEMO阶段应该测试什么?直播APP接入实操指南
开发语言·人工智能·深度学习·音视频·美颜sdk·直播美颜sdk·第三方美颜sdk
HRaitest7 小时前
秋招技术岗招聘提效:三类 AI 招聘方案的技术底层与选型逻辑
大数据·人工智能·求职招聘·ai-native
天远数科8 小时前
零信任架构实战:基于天远企业股权变更构建自动化商业银行对公授信存续期股权异动与资产抽逃预警网关
运维·人工智能·架构·自动化
车软学堂8 小时前
从测试转开发,到底要补什么
网络·人工智能·python·功能测试·单片机·车载系统·自动化
海盗12348 小时前
AI 新闻日报 10-28:Atria Dawn 完整版开源、Cursor Agent SDK 转正、Genie 4 实时世界模型
人工智能·机器人·开源·人工智能aigc
志尊宝9 小时前
AI原生前端开发(035):AI时代的工程化最佳实践总结
人工智能·ai-native