设置首页收藏本站
12
返回列表 发新帖
开启左侧

模板匹配创建模板后直接使用还是找不到对应信息

[复制链接]
hankchang 发表于 2025-2-7 08:58:53 | 显示全部楼层
沒看過這麼複雜的處理程序!
真的需要這麼麻煩?
  1. ***找模型區域 可以進行 "前處理"
  2. ***使用合理的模型區域隊原始圖形 建立shape model 如果擔心輪廓不夠好 那就是 shape model 不適用
  3. ***或是要限制模型區域 及輪廓對比條件等參數 應該不是把待測圖也進行一番前處理在比對

  4. read_image(Image_Input, 'Image_20250109141448255.jpg')
  5. * write_image (Image_Input1, 'bmp', 0, 'C:/Users/13980/Desktop/test0123/0123input.bmp')
  6. * read_image (Image_Input, 'C:/Users/13980/Desktop/test0123/0123input.bmp')
  7. get_image_size (Image_Input, Width, Height)
  8. dev_open_window (0, 0, Width, Height, 'black', WindowHandle)
  9. dev_display(Image_Input)
  10. set_display_font(WindowHandle, 14, 'mono', 'true', 'false')
  11. dev_set_draw ('margin')
  12. dev_set_line_width(3)

  13. *设定被提取的颜色
  14. is_get_color :=1
  15. Row_Get_Color_Point:=862
  16. Column_Get_Color_Point:=685



  17. *颜色提取
  18. decompose3(Image_Input,Red_Input,Green_Input,Blue_Input)
  19. trans_from_rgb(Red_Input, Green_Input, Blue_Input, Hue_Input, Saturation_Input, Value_Input, 'hsv')
  20. Extract_H:=13
  21. Extract_S:=255
  22. Extract_V:=155

  23. if (is_get_color==1)
  24.     get_grayval (Hue_Input, Row_Get_Color_Point, Column_Get_Color_Point, Extract_H)
  25.     get_grayval (Saturation_Input, Row_Get_Color_Point, Column_Get_Color_Point, Extract_S)
  26.     get_grayval (Value_Input, Row_Get_Color_Point, Column_Get_Color_Point, Extract_V)
  27. endif
  28. * 对S分量图像进行阈值处理
  29. threshold (Saturation_Input, HighSaturation, Extract_S-100, Extract_S+100)

  30. * 提取H分量图像
  31. reduce_domain (Hue_Input, HighSaturation, HighHue)
  32. * 针对提取的H分量进行阈值处理
  33. threshold (HighHue, Result, Extract_H-10, Extract_H+10)

  34. * 再将其从原始图像中提取出来
  35. reduce_domain (Image_Input, Result, ImageReduced)
  36. * 最后显示读取图片
  37. dev_clear_window ()
  38. dev_display(ImageReduced)
  39. * write_image (ImageReduced, 'bmp', 0, 'C:/Users/13980/Desktop/test0123/0123.bmp')
  40. * 提取出来的颜色图转黑白
  41. rgb1_to_gray (ImageReduced, GrayImage)
  42. opening_circle(GrayImage, RegionOpening, 3)
  43. closing_circle(RegionOpening, RegionOpening, 3)

  44. gen_rectangle1 (Rectangle, 750, 250, 1000, 950)
  45. reduce_domain(GrayImage,RegionOpening, Image_Shape)
  46. reduce_domain(Image_Shape,Rectangle, Image_Shape2)
  47. scale_image (Image_Shape2, Image_Shape2, 1, 255)

  48. if (is_get_color==1)
  49.     * 创建轮廓模板 ,这里在进行开闭运算为了降低轮廓复杂度
  50.     opening_circle(Image_Shape2, Image_Shape3,5)
  51.     closing_circle(Image_Shape3, Image_Shape4, 20)
  52.     reduce_domain(Image_Shape2,Image_Shape4, Image_Shape5)
  53.     scale_image (Image_Shape5, Image_Shape6, 1, 255)
  54.     write_image (Image_Shape6, 'bmp', 0, 'd:/012355.bmp')
  55.     read_image (image_222,'d:/012355.bmp')
  56.      * convert_image_type (Image_Shape6, image_222, 'byte')
  57.        copy_image (Image_Shape6, DupImage)
  58.     dev_clear_window ()
  59.     dev_display(Image_Shape6)
  60.      *提取边缘
  61.     edges_sub_pix (Image_Shape6, Edges, 'canny', 1, 20, 40)
  62.     *训练模板
  63.    [i][b] **找到shape model 的區域 使用原始圖檔進行訓練! 不要進行奇怪的填充[/b][/i]
  64.   
  65.    [b][i] create_shape_model(Image_Input, 'auto', -0.39, 0.79, 'auto', 'auto', 'use_polarity', 'auto', 'auto', ModelID1)[/i][/b]
  66.      *匹配此模板
  67.     [b]find_shape_model (Image_Input, ModelID_shape_xld, -0.39, 0.79, 0.5, 1, 0.5, 'least_squares', 0, 0.9, Row, Column, Angle, Score)[/b]
  68.      *匹配此模板
  69.   [i][b]  write_shape_model(ModelID_shape_xld,'d:/ModelID_shape_xld2.shapexldmodel')[/b][/i]
  70. [i][b]    inspect_shape_model (Image_Input, ModelImages, ModelRegions, 4, 30)[/b][/i]
  71. [i][b]    create_scaled_shape_model (Image_Input, 'auto', -0.39, 0.79, 'auto', 0.9, 1.1, 'auto', 'auto', 'use_polarity', 'auto', 'auto', ModelID)[/b][/i]
  72. [i][b]    get_shape_model_contours(ModelIDContours, ModelID, 1)[/b][/i]
  73. [i][b]    find_scaled_shape_model (Image_Input, ModelID, -0.39, 0.78, 1, 1.1, 0.2, 1, 0.5, 'least_squares', 0, 0.9, Row1, Column1, Angle1, Scale, Score1)[/b][/i]

  74. else
  75.     Row_Base:=196.746
  76.     Column_Base:=280.996
  77.    * 匹配轮廓
  78.    read_shape_model('C:/Users/13980/Desktop/test0123/ModelID_shape_xld2.shapexldmodel',ModelID_shape_xld)
  79.      *find_shape_model (ImageReduced, ModelID_shape_xld, -0.39, 0.79, 0.5, 1, 0.5, 'least_squares', 0, 0.9, Row, Column, Angle, Score)
  80.    *提取边缘
  81.    *edges_sub_pix (Image_Shape2, Edges, 'canny', 1, 20, 40)
  82.    find_shape_model (Image_Shape2, ModelID_shape_xld, -0.39, 0.79, 0.3, 1, 0.5, 'least_squares', 0, 0.4, Row, Column, Angle, Score)
  83.    get_shape_model_contours(ModelContours, ModelID_shape_xld, 1)
  84.    dev_clear_window ()
  85.    dev_display(Image_Shape2)
  86.    dev_set_color('green')
  87.    dev_display(ModelContours)
  88.    Row_Offset:=Row-Row_Base
  89.    Column_Offset:=Column-Column_Base
  90.    
  91. endif
  92. *模板坐标
复制代码
奖励计划已经开启,本站鼓励作者发布最擅长的技术内容和资源,流量变现就在现在,[点我]加入吧~~~Go
大凡光学,专注标定板提供
 楼主| 林佳霖 发表于 2025-2-7 14:04:44 | 显示全部楼层
hankchang 发表于 2025-2-7 08:58
沒看過這麼複雜的處理程序!
真的需要這麼麻煩?

我想要的就是颜色提取后进行模板匹配,我觉得不是很麻烦的程序,但是我模板匹配这里肯定是有问题的,我找不到问题点在哪里
奖励计划已经开启,本站鼓励作者发布最擅长的技术内容和资源,流量变现就在现在,[点我]加入吧~~~Go
asyom 发表于 2025-2-7 15:12:48 | 显示全部楼层
目的是检出信封,直接以信封作为图像做模板就行了,那些预处理都是多余的。创建模的时候没有以信封图像建模的,匹配肯定是找不到了
奖励计划已经开启,本站鼓励作者发布最擅长的技术内容和资源,流量变现就在现在,[点我]加入吧~~~Go
 楼主| 林佳霖 发表于 2025-2-7 16:32:28 | 显示全部楼层
asyom 发表于 2025-2-7 15:12
目的是检出信封,直接以信封作为图像做模板就行了,那些预处理都是多余的。创建模的时候没有以信封图像建模 ...

不是的,是这皮带上面什么东西都有可能出现
奖励计划已经开启,本站鼓励作者发布最擅长的技术内容和资源,流量变现就在现在,[点我]加入吧~~~Go
 楼主| 林佳霖 发表于 2025-2-8 09:23:31 | 显示全部楼层
hankchang 发表于 2025-2-7 08:58
沒看過這麼複雜的處理程序!
真的需要這麼麻煩?

我懂了,哈哈,我找到我的问题点了,谢谢你哦
奖励计划已经开启,本站鼓励作者发布最擅长的技术内容和资源,流量变现就在现在,[点我]加入吧~~~Go
回复 支持 1 反对 0

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

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