-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy path临时斑马线.c
38 lines (34 loc) · 1.35 KB
/
临时斑马线.c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
//3.29晚上JZB 加了一些注释
// 希望这个数组够用
uint8_t bin_image[35][100]; // 实际的二维像素数组定义
uint8_t garageout_flag = 0; // 初始化标志
uint8_t region = 0;
uint8_t garage_count = 0;
uint8_t white_black = 0;
uint8_t black_white = 0;
void crosswalk(void) {
// 这里是扫20-35行,看看需不需要改
for (uint8_t hang = 20; hang < 35; hang++) {
garage_count = 0;
black_white = !white_black; // 重置,以便每次新行开始时触发变化检测
//只处理每行中从第10列到第99列,看看需不需要改
for (uint8_t lie = 10; lie < 100; lie++) {
//这里有一个初始化的三元运算符,不用管
white_black = (bin_image[hang][lie] == white_pixel) ? 1 : 0;
if (white_black != black_white) {
black_white = white_black;
garage_count++;
}
//这里选择变11次才算(我记得好像没那么多)
if (garage_count > 11) {
region++;
break; // 一旦在一行中检测到足够的变化,即跳出循环
}
}
if (region > 2) {
garageout_flag = 1;
break; // 在足够多的行中检测到变化后退出
//输出是garageout_flag,我在main里面应该包了这个判断
}
}
}