honeymunan
技术员
技术员
  • 最后登录2017-05-09
  • 发帖数13
  • 金币155枚
  • 贡献勋章0枚
  • 社区居民
  • 忠实会员
阅读:5664回复:14

算子find_shape_model返回的角度值是负值

楼主#
更多 发布于:2014-09-22 10:07
基于形状的模板匹配,算子find_shape_model返回的角度值是负值,比如-0.009,请问这是什么原因呢?

最新喜欢:

luoluoweinuanluoluo... cvMancvMan
x8515618
工程师
工程师
  • 最后登录2017-12-11
  • 发帖数97
  • 金币785枚
  • 贡献勋章0枚
  • 社区居民
  • 忠实会员
沙发#
发布于:2014-09-22 19:29
返回的值是弧度,-0.009弧度大概就是-0.5度,应该算是正常的允许的角度偏差。
honeymunan
技术员
技术员
  • 最后登录2017-05-09
  • 发帖数13
  • 金币155枚
  • 贡献勋章0枚
  • 社区居民
  • 忠实会员
板凳#
发布于:2014-09-22 22:05
x8515618:返回的值是弧度,-0.009弧度大概就是-0.5度,应该算是正常的允许的角度偏差。回到原帖
为什么要返回负值,而不返回0-360度之间的值呢
zh237553752
工程师
工程师
  • 最后登录2017-12-10
  • 发帖数92
  • 金币745枚
  • 贡献勋章0枚
  • 社区居民
  • 忠实会员
地板#
发布于:2014-09-23 17:31
下图就是halcon的角度旋转坐标系。-0.5度就是基于模板,顺时针旋转了0.5度。

图片:111111.png

成功,需要持之以恒的失败。
honeymunan
技术员
技术员
  • 最后登录2017-05-09
  • 发帖数13
  • 金币155枚
  • 贡献勋章0枚
  • 社区居民
  • 忠实会员
4楼#
发布于:2014-09-23 20:23
那么-0.5度和359.5度是等效的么
zh237553752
工程师
工程师
  • 最后登录2017-12-10
  • 发帖数92
  • 金币745枚
  • 贡献勋章0枚
  • 社区居民
  • 忠实会员
5楼#
发布于:2014-09-24 09:00
honeymunan:那么-0.5度和359.5度是等效的么回到原帖
不要老是用普通数学来定性halcon,上图已经给出halcon自身的角度规则,-0.5度相当于179.5度。
成功,需要持之以恒的失败。
honeymunan
技术员
技术员
  • 最后登录2017-05-09
  • 发帖数13
  • 金币155枚
  • 贡献勋章0枚
  • 社区居民
  • 忠实会员
6楼#
发布于:2014-09-24 15:05
zh237553752:不要老是用普通数学来定性halcon,上图已经给出halcon自身的角度规则,-0.5度相当于179.5度。回到原帖
如果-0.5度和179.5度等效,为什么绝大多数情况下find_shape_model返回的角度值是300多度,只有少数情况返回负值?
zh237553752
工程师
工程师
  • 最后登录2017-12-10
  • 发帖数92
  • 金币745枚
  • 贡献勋章0枚
  • 社区居民
  • 忠实会员
7楼#
发布于:2014-09-25 16:02
honeymunan:如果-0.5度和179.5度等效,为什么绝大多数情况下find_shape_model返回的角度值是300多度,只有少数情况返回负值?回到原帖
麻烦你把代码贴上来,返回角度值300度的我真没见过。如果基于模板旋转350度,返回的角度应该是-10度。
成功,需要持之以恒的失败。
honeymunan
技术员
技术员
  • 最后登录2017-05-09
  • 发帖数13
  • 金币155枚
  • 贡献勋章0枚
  • 社区居民
  • 忠实会员
8楼#
发布于:2014-09-25 20:03
dev_close_window ()
dev_open_window (0, 0, 640, 480, 'black', WindowHandle)
dev_update_window ('off')
dev_set_line_width (2)
dev_set_color ('red')
read_image (Image, 'C:/Documents and Settings/mn/桌面/Image0.jpg')
dev_display(Image)
*1)选择ROI区域
gen_rectangle1 (ROI_0, 203, 304, 291, 378)
*2)从原图中分割出指定区域
reduce_domain (Image, ROI_0, ImageReduced)
*3)根据指定区域创建模板
create_shape_model (ImageReduced, 'auto', 0,rad(360), 'auto', 'auto', 'use_polarity', 'auto', 'auto', ModelID)
stop()
搜索形状模板
read_image (Image1, 'C:/Documents and Settings/mn/桌面/Image3.jpg')
dev_display (Image1)
find_shape_model (Image1, ModelID, 0, rad(360), 0.6, 1, 0.5, 'interpolation', 0, 0.9, Row, Column, Angle, Score)
get_shape_model_contours (ModelContours, ModelID, 1)
vector_angle_to_rigid (0, 0, 0, Row[0], Column[0], Angle[0], HomMat2D)
affine_trans_contour_xld (ModelContours, ContoursAffinTrans, HomMat2D)
dev_display (ContoursAffinTrans)
stop()
clear_shape_model (ModelID)
honeymunan
技术员
技术员
  • 最后登录2017-05-09
  • 发帖数13
  • 金币155枚
  • 贡献勋章0枚
  • 社区居民
  • 忠实会员
9楼#
发布于:2014-09-25 20:05
zh237553752:麻烦你把代码贴上来,返回角度值300度的我真没见过。如果基于模板旋转350度,返回的角度应该是-10度。回到原帖
如图这种情况,角度值返回为5弧度,但是在本贴最上面的搜索模板的途中角度值返回为-0.009弧度
zh237553752
工程师
工程师
  • 最后登录2017-12-10
  • 发帖数92
  • 金币745枚
  • 贡献勋章0枚
  • 社区居民
  • 忠实会员
10楼#
发布于:2014-09-26 09:37
      代码看了。在创建模板的时候,你设定的角度为0-360,就是说,寻找模板的角度范围必须在0-360之间。
找模板的时候0-360,只能按照逆时针方向找模板,得出的结果自然就是336度。
      再说上图你得到的结果,-0.009弧度 = -0.64度。我自己做了下测试,在小于1度的时候halcon会返回负值,
在大于1度的时候根据你设定的0-360的范围,返回的是正角度。我自己测试了旋转1度的时候,返回值为358.323  。  
      至于为何这样,只能个人猜测是因为角度过小时,逆时针旋转找消耗时间过长,准确度比较低。欢迎高
手指教。

图片:QQ图片20140926093649.bmp

成功,需要持之以恒的失败。
honeymunan
技术员
技术员
  • 最后登录2017-05-09
  • 发帖数13
  • 金币155枚
  • 贡献勋章0枚
  • 社区居民
  • 忠实会员
11楼#
发布于:2014-09-26 10:32
zh237553752:代码看了。在创建模板的时候,你设定的角度为0-360,就是说,寻找模板的角度范围必须在0-360之间。
找模板的时候0-360,只能按照逆时针方向找模板,得出的结果自然就是336度。
      再说上图你得到的结果,-0.009弧度 ...
回到原帖
感谢解答,同时欢迎高手指教~
luoluoweinuan
高级工程师
高级工程师
  • 最后登录2017-12-14
  • 发帖数306
  • 金币1808枚
  • 贡献勋章0枚
  • 社区居民
  • 忠实会员
12楼#
发布于:2015-07-06 15:56
honeymunan:那么-0.5度和359.5度是等效的么回到原帖
等效的
chentian1207
助理工程师
助理工程师
  • 最后登录2017-12-09
  • 发帖数321
  • 金币563枚
  • 贡献勋章0枚
  • 社区居民
  • 忠实会员
13楼#
发布于:2016-04-06 21:53
不错啊,学习一下呢。。。。。。。。。。。。。
ii
中秋节的乡愁
技术员
技术员
  • 最后登录2017-11-26
  • 发帖数39
  • 金币152枚
  • 贡献勋章0枚
  • 社区居民
14楼#
发布于:2017-01-08 14:35
LZ 我也在学习基于模板的匹配,想向您请教。QQ 1215940453
游客

返回顶部