Opencv 3.1 project on GR-PEACH board

Fork of gr-peach-opencv-project by the do

Revision:
166:3a9487d57a5c
Child:
169:bdaa9537e072
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/define.h	Thu Jun 29 11:00:41 2017 +0000
@@ -0,0 +1,155 @@
+#ifndef DEFINE_H
+#define DEFINE_H
+
+#define VIDEO_CVBS             (0)                 /* Analog  Video Signal */
+#define VIDEO_CMOS_CAMERA      (1)                 /* Digital Video Signal */
+#define VIDEO_YCBCR422         (0)
+#define VIDEO_RGB888           (1)
+#define VIDEO_RGB565           (2)
+
+/**** User Selection *********/
+/** Camera setting **/
+#define VIDEO_INPUT_METHOD     (VIDEO_CMOS_CAMERA) /* Select  VIDEO_CVBS or VIDEO_CMOS_CAMERA                       */
+#define VIDEO_INPUT_FORMAT     (VIDEO_RGB565 )    /* Select  VIDEO_YCBCR422 or VIDEO_RGB888 or VIDEO_RGB565        */
+#define USE_VIDEO_CH           (0)                 /* Select  0 or 1            If selecting VIDEO_CMOS_CAMERA, should be 0.)               */
+#define VIDEO_PAL              (0)                 /* Select  0(NTSC) or 1(PAL) If selecting VIDEO_CVBS, this parameter is not referenced.) */
+/** LCD setting **/
+#define LCD_TYPE               (0)                 /* Select  0(4.3inch) or 1(7.1inch) */
+/*****************************/
+
+/** LCD shield config **/
+#if (LCD_TYPE == 0)
+  #include "LCD_shield_config_4_3inch.h"
+#else
+  #include "LCD_shield_config_7_1inch.h"
+#endif
+
+/** Video and Grapics (GRAPHICS_LAYER_0) parameter **/
+/* video input */
+#if USE_VIDEO_CH == (0)
+  #define VIDEO_INPUT_CH       (DisplayBase::VIDEO_INPUT_CHANNEL_0)
+  #define VIDEO_INT_TYPE       (DisplayBase::INT_TYPE_S0_VFIELD)
+#else
+  #define VIDEO_INPUT_CH       (DisplayBase::VIDEO_INPUT_CHANNEL_1)
+  #define VIDEO_INT_TYPE       (DisplayBase::INT_TYPE_S1_VFIELD)
+#endif
+
+/* NTSC or PAL */
+#if VIDEO_PAL == 0
+  #define COL_SYS              (DisplayBase::COL_SYS_NTSC_358)
+#else
+  #define COL_SYS              (DisplayBase::COL_SYS_PAL_443)
+#endif
+
+/* Video input and LCD layer 0 output */
+#if VIDEO_INPUT_FORMAT == VIDEO_YCBCR422
+  #define VIDEO_FORMAT         (DisplayBase::VIDEO_FORMAT_YCBCR422)
+  #define GRAPHICS_FORMAT      (DisplayBase::GRAPHICS_FORMAT_YCBCR422)
+  #define WR_RD_WRSWA          (DisplayBase::WR_RD_WRSWA_NON)
+#elif VIDEO_INPUT_FORMAT == VIDEO_RGB565
+  #define VIDEO_FORMAT         (DisplayBase::VIDEO_FORMAT_RGB565)
+  #define GRAPHICS_FORMAT      (DisplayBase::GRAPHICS_FORMAT_RGB565)
+  #define WR_RD_WRSWA          (DisplayBase::WR_RD_WRSWA_32_16BIT)
+#else
+  #define VIDEO_FORMAT         (DisplayBase::VIDEO_FORMAT_RGB888)
+  #define GRAPHICS_FORMAT      (DisplayBase::GRAPHICS_FORMAT_RGB888)
+  #define WR_RD_WRSWA          (DisplayBase::WR_RD_WRSWA_32BIT)
+#endif
+
+/* The size of the video input is adjusted to the LCD size. */
+#define VIDEO_PIXEL_HW                LCD_PIXEL_WIDTH
+#define VIDEO_PIXEL_VW                LCD_PIXEL_HEIGHT
+
+/*! Frame buffer stride: Frame buffer stride should be set to a multiple of 32 or 128
+    in accordance with the frame buffer burst transfer mode. */
+/* FRAME BUFFER Parameter GRAPHICS_LAYER_0 */
+#define FRAME_BUFFER_NUM              (3u)
+#if ( VIDEO_INPUT_FORMAT == VIDEO_YCBCR422 || VIDEO_INPUT_FORMAT == VIDEO_RGB565 )
+  #define FRAME_BUFFER_BYTE_PER_PIXEL (2u)
+#else
+  #define FRAME_BUFFER_BYTE_PER_PIXEL (4u)
+#endif
+#define FRAME_BUFFER_STRIDE           (((LCD_PIXEL_WIDTH * FRAME_BUFFER_BYTE_PER_PIXEL) + 31u) & ~31u)
+
+/* DRAW BUFFER Parameter GRAPHICS_LAYER_1 */
+#define DRAW_BUFFER_BYTE_PER_PIXEL   (2u)
+#define DRAW_BUFFER_STRIDE           (((LCD_PIXEL_WIDTH * DRAW_BUFFER_BYTE_PER_PIXEL) + 31u) & ~31u)
+
+//thedo__
+#define DRAW_BUFFER_STRIDE_LAYER_3           (((LCD_PIXEL_WIDTH * 4) + 31u) & ~31u)
+
+/* Draw panel parameter */
+#define DRAW_POINT                    (1u)
+
+/* IMAGE DOWN SAMPLE*/
+#define IMG_DOWN_SAMPLE                (2u)
+
+/* Touch number point */
+#define TOUCH_NUM                      (1u)
+
+#define SDCARD_NAME "SD"
+#define SDCARD_PATH "/SD"
+
+#define MODE_BTN_X                      16
+#define MODE_BTN_Y                      235
+
+#define REGIS_FACE_BTN_X                5
+#define REGIS_FACE_BTN_Y                130
+
+#define FACE_REG_ID_MENU_X              100
+#define FACE_REG_ID_MENU_Y              50
+
+#define FACE_REG_ACT_MENU_X             410
+#define FACE_REG_ACT_MENU_Y             80
+
+#define GESTURE_SAMPLING_BTN_X          410
+#define GESTURE_SAMPLING_BTN_Y          110
+
+#define M_PI                            (3.14159)
+
+
+
+enum APP_MODE{
+    FACE_DETECTION = 0,
+    MOTION_DETECTION,
+    FACE_RECOGNITION,
+    GUESTURE_RECOGNITION,
+    MODE_UNKNOWN
+};
+
+enum CLICKED_CODE
+{
+    CLICKED_UNKNOWN = 0,
+    CLICKED_REGIS_FACE,
+    CLICKED_CHANGE_ID,
+    CLICKED_ADD,
+    CLICKED_IGNORE,
+    CLICKED_HAND_SAMPLING
+};
+
+#define MAX_COUNTOURS (500)
+
+#if defined(__ICCARM__)
+/* 32 bytes aligned */
+#pragma data_alignment=32
+static uint8_t user_frame_buffer0[FRAME_BUFFER_STRIDE * LCD_PIXEL_HEIGHT];
+#pragma data_alignment=32
+static uint8_t user_frame_buffer1[FRAME_BUFFER_STRIDE * LCD_PIXEL_HEIGHT];
+#pragma data_alignment=32
+static uint8_t user_frame_buffer2[FRAME_BUFFER_STRIDE * LCD_PIXEL_HEIGHT];
+#else
+/* 32 bytes aligned */
+static uint8_t user_frame_buffer0[FRAME_BUFFER_STRIDE * LCD_PIXEL_HEIGHT]__attribute((aligned(32)));
+static uint8_t user_frame_buffer1[FRAME_BUFFER_STRIDE * LCD_PIXEL_HEIGHT]__attribute((aligned(32)));
+static uint8_t user_frame_buffer2[FRAME_BUFFER_STRIDE * LCD_PIXEL_HEIGHT]__attribute((aligned(32)));
+static uint8_t user_frame_buffer_draw[DRAW_BUFFER_STRIDE * LCD_PIXEL_HEIGHT]__attribute((aligned(32)));
+static uint8_t user_frame_buffer_draw_button[DRAW_BUFFER_STRIDE * LCD_PIXEL_HEIGHT]__attribute((aligned(32)));
+static uint8_t user_buf_draw_action_888[DRAW_BUFFER_STRIDE_LAYER_3 * LCD_PIXEL_HEIGHT]__attribute((aligned(32)));
+static uint8_t my_frame[FRAME_BUFFER_STRIDE * LCD_PIXEL_HEIGHT]__attribute((aligned(32)));
+#endif
+static uint8_t * FrameBufferTbl[FRAME_BUFFER_NUM] = {user_frame_buffer0, user_frame_buffer1, user_frame_buffer2};
+#if VIDEO_INPUT_METHOD == VIDEO_CVBS
+static volatile int32_t vfield_count = 0;
+#endif
+
+#endif //DEFINE_H
\ No newline at end of file