Opencv6:line_orientation的Opencv实现(获取直线角度、两直线夹角)
(1)line_orientation简介:
line_orientation( : : RowBegin, ColBegin, RowEnd,ColEnd : Phi)
Halcon函数,给定直线上两点,以弧度形式返回直线的角度。
(2)本文扩展:
本文对line_orientation函数进行扩展,将实现给定两条直线上各两点,返回两直线夹角的功能,可选择角度形式或弧度形式返回。
当需要获取一条直线的角度时,只需将另一条直线设为与x轴平行的任一直线即可。
(3)实现思路:
①根据给定点的坐标分别获得两条直线的斜率;
②根据两斜率求得直线夹角的正切值;
③以角度或弧度形式返回直线夹角。
(4)代码:
#include #include #include "FunctionsHalcon.h"
using namespace std;
using namespace cv;
//【1】根据两直线上两点计算两直线夹角
//当flag=0时返回弧度,当flag!-0时返回角度
float lines_orientation1(CvPoint A1, CvPoint A2, CvPoint B1, CvPoint B2, int flag)
{
//【1】根据直线上两点计算斜率
float kLine1 = (A2.y - A1.y)/(A2.x - A1.x);
float kLine