Paparazzi UAS
v5.18.0_stable
Paparazzi is a free software Unmanned Aircraft System.
colorfilter.c
Go to the documentation of this file.
1
/*
2
* Copyright (C) 2015
3
*
4
* This file is part of Paparazzi.
5
*
6
* Paparazzi is free software; you can redistribute it and/or modify
7
* it under the terms of the GNU General Public License as published by
8
* the Free Software Foundation; either version 2, or (at your option)
9
* any later version.
10
*
11
* Paparazzi is distributed in the hope that it will be useful,
12
* but WITHOUT ANY WARRANTY; without even the implied warranty of
13
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14
* GNU General Public License for more details.
15
*
16
* You should have received a copy of the GNU General Public License
17
* along with Paparazzi; see the file COPYING. If not, write to
18
* the Free Software Foundation, 59 Temple Place - Suite 330,
19
* Boston, MA 02111-1307, USA.
20
*/
21
26
// Own header
27
#include "
modules/computer_vision/colorfilter.h
"
28
#include <stdio.h>
29
30
#include "
modules/computer_vision/lib/vision/image.h
"
31
32
#ifndef COLORFILTER_FPS
33
#define COLORFILTER_FPS 0
34
#endif
35
PRINT_CONFIG_VAR(
COLORFILTER_FPS
)
36
37
38
#ifndef COLORFILTER_SEND_OBSTACLE
39
#define COLORFILTER_SEND_OBSTACLE FALSE
40
#endif
41
PRINT_CONFIG_VAR(
COLORFILTER_SEND_OBSTACLE
)
42
43
struct
video_listener
*
listener
= NULL;
44
45
// Filter Settings
46
uint8_t
color_lum_min
= 105;
47
uint8_t
color_lum_max
= 205;
48
uint8_t
color_cb_min
= 52;
49
uint8_t
color_cb_max
= 140;
50
uint8_t
color_cr_min
= 180;
51
uint8_t
color_cr_max
= 255;
52
53
// Result
54
volatile
int
color_count
= 0;
55
56
#include "subsystems/abi.h"
57
58
// Function
59
static
struct
image_t
*
colorfilter_func
(
struct
image_t
*img,
uint8_t
camera_id __attribute__((unused)))
60
{
61
// Filter
62
color_count
=
image_yuv422_colorfilt
(img, img,
63
color_lum_min
,
color_lum_max
,
64
color_cb_min
,
color_cb_max
,
65
color_cr_min
,
color_cr_max
66
);
67
68
if
(
COLORFILTER_SEND_OBSTACLE
) {
69
if
(
color_count
> 20)
70
{
71
AbiSendMsgOBSTACLE_DETECTION(
OBS_DETECTION_COLOR_ID
, 1.
f
, 0.
f
, 0.
f
);
72
}
73
else
74
{
75
AbiSendMsgOBSTACLE_DETECTION(
OBS_DETECTION_COLOR_ID
, 10.
f
, 0.
f
, 0.
f
);
76
}
77
}
78
79
return
img;
// Colorfilter did not make a new image
80
}
81
82
void
colorfilter_init
(
void
)
83
{
84
cv_add_to_device
(&COLORFILTER_CAMERA,
colorfilter_func
,
COLORFILTER_FPS
, 0);
85
}
colorfilter_func
static struct image_t * colorfilter_func(struct image_t *img, uint8_t camera_id)
Definition:
colorfilter.c:59
color_count
volatile int color_count
Definition:
colorfilter.c:54
color_lum_max
uint8_t color_lum_max
Definition:
colorfilter.c:47
colorfilter.h
cv_add_to_device
struct video_listener * cv_add_to_device(struct video_config_t *device, cv_function func, uint16_t fps, uint8_t id)
Definition:
cv.c:46
COLORFILTER_FPS
#define COLORFILTER_FPS
Default FPS (zero means run at camera fps)
Definition:
colorfilter.c:33
color_cb_max
uint8_t color_cb_max
Definition:
colorfilter.c:49
listener
struct video_listener * listener
Definition:
colorfilter.c:43
COLORFILTER_SEND_OBSTACLE
#define COLORFILTER_SEND_OBSTACLE
Default sonar/agl to use in opticflow visual_estimator.
Definition:
colorfilter.c:39
OBS_DETECTION_COLOR_ID
#define OBS_DETECTION_COLOR_ID
Definition:
abi_sender_ids.h:446
image_yuv422_colorfilt
uint16_t image_yuv422_colorfilt(struct image_t *input, struct image_t *output, uint8_t y_m, uint8_t y_M, uint8_t u_m, uint8_t u_M, uint8_t v_m, uint8_t v_M)
Filter colors in an YUV422 image.
Definition:
image.c:166
uint8_t
unsigned char uint8_t
Definition:
types.h:14
image.h
f
uint16_t f
Camera baseline, in meters (i.e. horizontal distance between the two cameras of the stereo setup)
Definition:
wedgebug.c:204
color_cr_max
uint8_t color_cr_max
Definition:
colorfilter.c:51
colorfilter_init
void colorfilter_init(void)
Definition:
colorfilter.c:82
color_cr_min
uint8_t color_cr_min
Definition:
colorfilter.c:50
color_lum_min
uint8_t color_lum_min
Definition:
colorfilter.c:46
video_listener
Definition:
cv.h:51
color_cb_min
uint8_t color_cb_min
Definition:
colorfilter.c:48
image_t
Definition:
image.h:44
sw
airborne
modules
computer_vision
colorfilter.c
Generated on Tue Feb 1 2022 13:51:14 for Paparazzi UAS by
1.8.17