halcon判定物体旋转多少角度

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了halcon判定物体旋转多少角度相关的知识,希望对你有一定的参考价值。

如图所示,左边的为,模型图,右边的为旋转一定角度的图。现在我想知道右边的旋转了多少角度,用halcon怎么做或者C#的cognex怎么判定。菜鸟求解,谢谢各位大神!没有财富了……

参考技术A

Halcon的方法:

    用基于轮廓的模版匹配,匹配到之后,会有一个参数输出目标与原模版相比旋转的角度。

    原图的左上角点和右下角点连线,再把旋转之后图的上角与下角连线,测量两条线的角度。

    别的办法还没想到,总之肯定有很多办法。

参考技术B 同样 Halcon的菜鸟 坐等大牛

物体旋转后缓慢停在指定角度的实现

可指定物体的旋转时间速度停下角度,可以参考来实现转盘抽奖或图片翻转打开等效果。

 1 using UnityEngine;
 2 using System.Collections;
 3 
 4 public class Rotate : MonoBehaviour
 5 {
 6     public float targetAngle = 180f;
 7     public float spinSpeed = 6f;
 8     public float stopSpeed = 2f;
 9     public float duration = 3f;
10     float tmpAngle;
11     Vector3 tmpLocalEulerAngles;
12 
13     float countdown;
14     float _targetAngle;
15 
16     public enum State
17     {
18         Stopped,
19         Spinning,
20         Stopping
21     }
22 
23     public State state
24     {
25         get
26         {
27             return _state;
28         }
29     }
30 
31     State _state = State.Stopped;
32 
33     public void StartSpin ()
34     {
35         transform.localEulerAngles = Vector3.zero;
36         _targetAngle = targetAngle % 360f;
37         countdown = duration;
38         _state = State.Spinning;
39         enabled = true;
40     }
41 
42     void OnGUI ()
43     {
44         if (GUI.Button (new Rect (0f, 0f, 100f, 100f), "Rotate")) {
45             StartSpin ();
46         }
47     }
48 
49     void Update ()
50     {
51         switch (_state) {
52             case State.Spinning:
53                 transform.Rotate (0f, spinSpeed, 0f);
54                 countdown -= Time.deltaTime;
55                 if (countdown < 0f) {
56                     if (transform.localEulerAngles.y > _targetAngle)
57                         _targetAngle = 360f - (transform.localEulerAngles.y - _targetAngle) + transform.localEulerAngles.y;
58                     tmpAngle = transform.localEulerAngles.y;
59                     _state = State.Stopping;
60                 }
61                 break;
62             case State.Stopping:
63                 tmpAngle = Mathf.Lerp (tmpAngle, _targetAngle, Time.deltaTime * stopSpeed);
64                 tmpLocalEulerAngles = transform.localEulerAngles;
65                 tmpLocalEulerAngles.y = tmpAngle;
66                 transform.localEulerAngles = tmpLocalEulerAngles;
67                 if (tmpAngle < targetAngle + 0.5f && tmpAngle > targetAngle - 0.5f) {
68                     _state = State.Stopped;
69                 }
70                 break;
71             default:
72 //                enabled = false;
73                 break;
74         }
75     }
76 }

 

以上是关于halcon判定物体旋转多少角度的主要内容,如果未能解决你的问题,请参考以下文章

旋转速度与角度区别

halcon 两点间的像素如何转成mm,如200pix=多少mm?

U3D如何让物体旋转一定角度

Unity获取物体旋转角度怎么计算?

halcon 模板匹配 -- 转化 vector_angle_to_rigid

基于HALCON的双目立体视觉系统实现