Hello Mat

 找回密码
 立即注册
查看: 10964|回复: 2

仿射变换hom_mat2d_identity

[复制链接]

1294

主题

1520

帖子

110

金钱

管理员

Rank: 9Rank: 9Rank: 9

积分
22633
发表于 2016-11-15 22:07:14 | 显示全部楼层 |阅读模式
仿射变换:图像分辨率过大,内存消耗严重,此时较多的分割感兴趣的区域进行算法分析,算法分析完成后,需要将结果仿射变换回原图的过程。
  1. read_image (Image, 'C:/Users/ysw/Desktop/视频讲解/图像处理视频Halcon/仿射变换/defect4.bmp')
  2. count_channels(Image, Channels)
  3. if(Channels>1)
  4.     rgb1_to_gray(Image, Image)
  5. endif
  6. get_image_size(Image, Width, Height)

  7. **** 二值化操作 ********
  8. threshold (Image, Regions, 3, 255)
  9. connection(Regions, ConnectedRegions)
  10. select_shape (ConnectedRegions, SelectedRegions, 'area', 'and', 100, 178455)
  11. fill_up(SelectedRegions, RegionFillUp)

  12. **** 水平矫正 ********
  13. smallest_rectangle2(RegionFillUp, Row, Column, Phi, Length1, Length2)
  14. if(Phi>rad(45))
  15.     Phi := Phi-rad(45)
  16. elseif(Phi<-rad(45))
  17.     Phi := Phi+rad(90)
  18. else
  19. endif
  20. vector_angle_to_rigid(Height/2,Width/2,0,Height/2,Width/2,-Phi,HomMat2D)

  21. *********************** 仿射变换 *********************************
  22. affine_trans_image(Image, ImageAffinTrans, HomMat2D, 'constant', 'false')
  23. affine_trans_region(RegionFillUp, RegionAffineTrans, HomMat2D, 'false')

  24. ***** 产生一个矩形,查看仿射变换后的结果,截取目标所在的像素区域 ************
  25. inner_rectangle1(RegionAffineTrans, Row1, Column1, Row2, Column2)
  26. gen_rectangle1(Rectangle, Row1, Column1, Row2, Column2)
  27. reduce_domain(ImageAffinTrans, Rectangle, ImageReduced)
  28. crop_part(ImageReduced, ImagePart, Row1, Column1, Column2-Column1, Row2-Row1)

  29. ********* 二值化处理 ******************
  30. threshold (ImagePart, Regions1, 0, 5)
  31. connection(Regions1, ConnectedRegions1)

  32. *********** 仿射反变换 ***************
  33. hom_mat2d_identity(HomMat2DIdentity)
  34. hom_mat2d_translate(HomMat2DIdentity,Row1,Column1,HomMat2DTranslate)
  35. hom_mat2d_rotate(HomMat2DTranslate,Phi,Height/2,Width/2,HomMat2DRotate)
  36. affine_trans_region(ConnectedRegions1,RegionAffineTrans1, HomMat2DRotate, 'false')

  37. *********** 标记 ********************
  38. area_center(RegionAffineTrans1, Area, Row3, Column3)
  39. if(|Row3|>0)
  40.     tuple_gen_const(|Row3|,10,Radius)
  41.     gen_circle_contour_xld(RegionAffineTrans1,Row3,Column3,Radius,0,6.28,'positive',1)
  42. else
  43.     gen_empty_obj(ConnectedRegions1)
  44. endif
复制代码




算法QQ  3283892722
群智能算法链接http://halcom.cn/forum.php?mod=forumdisplay&fid=73
回复

使用道具 举报

0

主题

1

帖子

1

金钱

新手上路

Rank: 1

积分
2
发表于 2017-1-12 19:14:40 | 显示全部楼层
这个应该很精确吧,
回复 支持 反对

使用道具 举报

1294

主题

1520

帖子

110

金钱

管理员

Rank: 9Rank: 9Rank: 9

积分
22633
 楼主| 发表于 2017-1-14 22:36:26 | 显示全部楼层
skb171890641 发表于 2017-1-12 19:14
这个应该很精确吧,

FFT-RFT-DFT,对于有规则纹理的图像而言,确实是很好的一个算法
算法QQ  3283892722
群智能算法链接http://halcom.cn/forum.php?mod=forumdisplay&fid=73
回复 支持 反对

使用道具 举报

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

本版积分规则

Python|Opencv|MATLAB|Halcom.cn ( 蜀ICP备16027072号 )

GMT+8, 2024-4-27 02:31 , Processed in 0.235164 second(s), 21 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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