开启左侧

怎么把三张图拼成一张

[复制链接]
Gavin 发表于 2018-1-22 18:38:20 | 显示全部楼层 |阅读模式
三张图片是键盘的三个部分,要求拼出键盘,求解
K1_副本.bmp
K2_副本.bmp
K3_副本.bmp
Criss 发表于 2018-1-22 19:54:58 | 显示全部楼层
创建一个3倍大小的空图像区域,用于添加两幅图像到该图像区域,然后利用定位+仿射变换,动态产生模板,把两幅图像根据相同位置合并在一起,融合!另外一张图像继续添加到该图像区域,还是利用定位+仿射变换,即可!
liuchang1994 发表于 2018-1-23 18:45:15 | 显示全部楼层
先拼接两幅,在拼接刚拼好的这幅和另外一幅
 楼主| Gavin 发表于 2018-1-24 13:19:41 | 显示全部楼层
解决啦,用tile_images,扩成大图片,完了用max_image
 楼主| Gavin 发表于 2018-1-24 17:18:23 | 显示全部楼层
  1. read_image (Image, 'C:/Users/Gavin.ni/Desktop/K3.bmp')
  2. rgb1_to_gray (Image, GrayImage)
  3. read_image (Image1, 'C:/Users/Gavin.ni/Desktop/K2.bmp')
  4. rgb1_to_gray (Image1, GrayImage1)
  5. read_image (Image2, 'C:/Users/Gavin.ni/Desktop/K1.bmp')
  6. rgb1_to_gray (Image2, GrayImage2)

  7. tile_images (GrayImage,TiledImage, 3, 'vertical')
  8. tile_images (GrayImage1,TiledImage1,3,'vertical')
  9. tile_images (GrayImage2, TiledImage2, 3, 'vertical')

  10. gen_rectangle1 (ROI_0, 1083.15, 2928.61, 2362.06, 3846.26)

  11. reduce_domain (TiledImage,ROI_0, ImageReduced)
  12. create_shape_model (ImageReduced, 'auto', -0.39, 0.79, 'auto', 'auto', 'use_polarity', 'auto', 'auto', ModelID)
  13. find_shape_model (TiledImage, ModelID, -0.39, 0.78, 0.5, 1, 0.5, 'least_squares', 0, 0.9, Row, Column, Angle, Score)
  14. dev_display (TiledImage)
  15. dev_display_shape_matching_results (ModelID, 'red', Row, Column, Angle, 1, 1, 0)
  16. dev_display (TiledImage1)
  17. find_shape_model (TiledImage1, ModelID, -0.39, 0.78, 0.5, 1, 0.5, 'least_squares', 0, 0.9, Row1, Column1, Angle1, Score1)
  18. dev_display_shape_matching_results (ModelID, 'red', Row1, Column1, Angle1, 1, 1, 0)
  19. dev_display (TiledImage)
  20. vector_angle_to_rigid (Row1,Column1,Angle1,Row, Column, Angle, HomMat2D)
  21. affine_trans_image (TiledImage1, ImageAffinTrans, HomMat2D, 'constant', 'false')

  22. gen_rectangle1 (ROI_1, 1126.88, 5126.59, 2500.88, 6083.93)
  23. reduce_domain (ImageAffinTrans, ROI_1, ImageReduced1)
  24. create_shape_model (ImageReduced1, 'auto', -0.39, 0.79, 'auto', 'auto', 'use_polarity', 'auto', 'auto', ModelID1)
  25. find_shape_model (ImageAffinTrans, ModelID1, -0.39, 0.79, 0.5, 1, 0.5, 'least_squares', 0, 0.9, Row2, Column2, Angle2, Score2)
  26. find_shape_model (TiledImage2, ModelID1, -0.39, 0.79, 0.5, 1, 0.5, 'least_squares', 0, 0.9, Row3, Column3, Angle3, Score3)
  27. vector_angle_to_rigid (Row3, Column3, Angle3, Row2, Column2, Angle2, HomMat2D1)
  28. affine_trans_image (TiledImage2,ImageAffinTrans1, HomMat2D1, 'constant', 'false')
  29. get_image_size (TiledImage, W, Height)

  30. gen_image_const (ImageMax, 'byte', W, Height)
  31. max_image (ImageMax,TiledImage,ImageMax)
  32. max_image (ImageMax,ImageAffinTrans,ImageMax)
  33. dev_display (ImageMax)
  34. max_image (ImageMax,ImageAffinTrans1,ImageMax)
  35. dev_display (ImageMax)
复制代码

最后的Max_image,在这段程序中会把图片搞不见,,但是把 ImageAffinTrans1 和 ImageAffinTrans 和 TiledImage 保存出去,再读进来用Max_image就能拼好求解!!!!!!!!!!!!!!!!!!
彭晓军 发表于 2018-2-7 07:28:01 | 显示全部楼层
这个程序怎么用不了?
chinajoan0 发表于 2018-3-16 14:22:21 | 显示全部楼层
这个程序怎么用不了?,程序有BUG
chinajoan0 发表于 2018-3-16 14:24:20 | 显示全部楼层
在第12行代码时出错。出错代码为3111
Criss 发表于 2018-3-16 15:26:07 | 显示全部楼层
chinajoan0 发表于 2018-3-16 14:24
在第12行代码时出错。出错代码为3111

参考错误代码:https://www.51halcon.com/thread-1025-1-1.html
At least one input object has an empty region

就是你输入的图形变量(至少一个输入图形变量)是一个空区域,你产生的那个ROI可能超出图像大小了吧?或者自己画一个试试。
chinajoan0 发表于 2018-3-16 21:01:37 | 显示全部楼层
这个代码不是针对本贴的图片来做的吗?我是直接下的图片,下的程序。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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