feat: 新增边线显示控件(未测试)
This commit is contained in:
@@ -5,12 +5,12 @@
|
||||
|
||||
|
||||
|
||||
const sint32 direction_front[4][2] = {{0, -1},{1, 0},{0, 1},{-1, 0}};
|
||||
const sint32 direction_frontleft[4][2] = {{-1, -1},{1, -1},{1, 1},{-1, 1}};
|
||||
const sint32 direction_frontright[4][2] ={{1, -1},{1, 1},{-1, 1},{-1, -1}};
|
||||
const int32_t direction_front[4][2] = {{0, -1},{1, 0},{0, 1},{-1, 0}};
|
||||
const int32_t direction_frontleft[4][2] = {{-1, -1},{1, -1},{1, 1},{-1, 1}};
|
||||
const int32_t direction_frontright[4][2] ={{1, -1},{1, 1},{-1, 1},{-1, -1}};
|
||||
|
||||
|
||||
void SearchLineAdaptive_Left(uint8 img_gray[], sint32 block_size, sint32 down_value, sint32 h, sint32 w, sint32 pts[][2], sint32* line_num)
|
||||
void SearchLineAdaptive_Left(uint8_t img_gray[], int32_t block_size, int32_t down_value, int32_t h, int32_t w, int32_t pts[][2], int32_t* line_num)
|
||||
{
|
||||
int half = block_size / 2;
|
||||
int step = 0, dir = 0, turn = 0;
|
||||
@@ -53,7 +53,7 @@ void SearchLineAdaptive_Left(uint8 img_gray[], sint32 block_size, sint32 down_va
|
||||
*line_num = step;
|
||||
}
|
||||
|
||||
void SearchLineAdaptive_Right(uint8 img_gray[], sint32 block_size, sint32 down_value, sint32 h, sint32 w, sint32 pts[][2], sint32* line_num)
|
||||
void SearchLineAdaptive_Right(uint8_t img_gray[], int32_t block_size, int32_t down_value, int32_t h, int32_t w, int32_t pts[][2], int32_t* line_num)
|
||||
{
|
||||
int half = block_size / 2;
|
||||
int step = 0, dir = 0, turn = 0;
|
||||
@@ -100,7 +100,7 @@ void SearchLineAdaptive_Right(uint8 img_gray[], sint32 block_size, sint32 down_v
|
||||
|
||||
|
||||
|
||||
void GetLinesFilter(float32 pts_in[][2], sint32 pts_in_count, float32 pts_out[][2], sint32 kernelsize)
|
||||
void GetLinesFilter(float pts_in[][2], int32_t pts_in_count, float pts_out[][2], int32_t kernelsize)
|
||||
{
|
||||
int half = kernelsize / 2;
|
||||
for (int i = 0; i < pts_in_count; i++) {
|
||||
@@ -115,7 +115,7 @@ void GetLinesFilter(float32 pts_in[][2], sint32 pts_in_count, float32 pts_out[][
|
||||
}
|
||||
}
|
||||
|
||||
void GetLinesResample(float32 pts_in[][2], sint32 num1, float32 pts_out[][2], sint32* num2, float32 dist)
|
||||
void GetLinesResample(float pts_in[][2], int32_t num1, float pts_out[][2], int32_t* num2, float dist)
|
||||
{
|
||||
if (num1 < 0) {
|
||||
*num2 = 0;
|
||||
@@ -192,7 +192,7 @@ void nms_angle(float angle_in[], int num, float angle_out[], int kernel) {
|
||||
}
|
||||
}
|
||||
|
||||
void GetMidLine_Left(float32 pts_left[][2], sint32 pts_left_count, float32 mid_left[][2], sint32 approx_num, float32 dist)
|
||||
void GetMidLine_Left(float pts_left[][2], int32_t pts_left_count, float mid_left[][2], int32_t approx_num, float dist)
|
||||
{
|
||||
for (int i = 0; i < pts_left_count; i++) {
|
||||
float dx = pts_left[clip(i + approx_num, 0, pts_left_count - 1)][1] - pts_left[clip(i - approx_num, 0, pts_left_count - 1)][1];
|
||||
@@ -207,7 +207,7 @@ void GetMidLine_Left(float32 pts_left[][2], sint32 pts_left_count, float32 mid_l
|
||||
}
|
||||
|
||||
|
||||
void GetMidLine_Right(float32 pts_right[][2], sint32 pts_right_count, float32 mid_right[][2], sint32 approx_num, float32 dist)
|
||||
void GetMidLine_Right(float pts_right[][2], int32_t pts_right_count, float mid_right[][2], int32_t approx_num, float dist)
|
||||
{
|
||||
for (int i = 0; i < pts_right_count; i++) {
|
||||
float dx = pts_right[clip(i + approx_num, 0, pts_right_count -1)][1] - pts_right[clip(i - approx_num, 0, pts_right_count -1 )][1];
|
||||
@@ -223,10 +223,10 @@ void GetMidLine_Right(float32 pts_right[][2], sint32 pts_right_count, float32 mi
|
||||
}
|
||||
|
||||
|
||||
int is_curve(float32 angle[], int n, float32 threshold) {
|
||||
int is_curve(float angle[], int n, float threshold) {
|
||||
for (int i = 1; i < n - 1; i++) {
|
||||
float32 da = fabs(angle[i] - angle[i-1]);
|
||||
float32 db = fabs(angle[i+1] - angle[i]);
|
||||
float da = fabs(angle[i] - angle[i-1]);
|
||||
float db = fabs(angle[i+1] - angle[i]);
|
||||
if (da > threshold && db > threshold) {
|
||||
return 1; // 是弯道
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user