资源简介

使用stm32驱动OV7725摄像头进行图像实时采集,在tft屏幕上实时显示并识别图像中的特定颜色,在颜色的周围画上框。

资源截图

代码片段和文件信息

#include “ColorTracer.h“
#include “bsp_ili9341_lcd.h“

RESULT result;
//TARGET_CONDITION condition={508020250202004040320240};

//识别的是绿色
TARGET_CONDITION condition={
60  //目标最小色度,H_MIN
110       //目标最大色度,H_MAX
           
50        //目标最小饱和度,S_MIN
240       //目标最大饱和度,S_MAX
           
60        //目标最小亮度,L_MIN
190       //目标最大亮度,L_MAX
           
40        //目标最小宽度,WIDTH_MIN
40        //目标最小高度,HEIGHT_MIN
           
320       //目标最大宽度,WIDTH_MAX
240        //目标最大高度,HEIGHT_MAX
};

//测试无误
#define minOf3Values( v1 v2 v3 ) ( (v1 : ( (v2
#define maxOf3Values( v1 v2 v3 ) ( (v1>v2) ? ( (v1>v3) ? (v1) : (v3) ) \
: ( (v2>v3) ? (v2) : (v3) ) )

typedef struct  //RGB
{
unsigned char Red; // [0255]
unsigned char Green;        // [0255]
unsigned char Blue;         // [0255]
}COLOR_RGB;

typedef struct //HLS颜色
{
unsigned char Hue; //色度 [0240]
unsigned char Lightness; //亮度[0240]      
unsigned char Saturation; //饱和度[0240]      
}COLOR_HLS;

typedef struct //搜寻区域
{
unsigned int X_Start;
unsigned int X_End;
unsigned int Y_Start;
unsigned int Y_End;
}SEARCH_AREA;


/**
 * @brief  获取 ILI9341 显示器上某一个坐标点的像素数据
 * @param  usX :在特定扫描方向下该点的X坐标
 * @param  usY :在特定扫描方向下该点的Y坐标
 * @retval 像素数据
 */
//uint16_t ILI9341_GetPointPixel( uint16_t usX uint16_t usY )
#define getRGBColor_16bits ILI9341_GetPointPixel

/**
 * @brief  读取某一点颜色数据
 * @param  usX :该点的X坐标
 * @param  usY :该点的Y坐标
 * @param  color_rgb :COLOR_RGB结构体,存储颜色数据
 * @retval 无
 */
static void ReadColor( uint16_t usX uint16_t usY COLOR_RGB* color_rgb )
{
unsigned short rgb;

rgb = getRGBColor_16bits( usX usY ); //获取颜色数据

//转换成值域为[0255]的三原色值
color_rgb->Red  = (unsigned char)( ( rgb & 0xF800 ) >> 8 );
color_rgb->Green  = (unsigned char)( ( rgb & 0x07E0 ) >> 3 );
color_rgb->Blue  = (unsigned char)( ( rgb & 0x001F ) << 3 );
//color_rgb->Blue  = (unsigned char)( ( rgb & 0x001F )  );
}

/**
 * @brief  RGB转HLS
 * @param  color_rgb :COLOR_RGB结构体,存储RGB格式颜色数据
 * @param  color_hls :COLOR_HLS结构体,存储HLS格式颜色数据
 * @retval 无
 */
static void RGB2HSL( const COLOR_RGB* color_rgb COLOR_HLS* color_hls )
{
int r g b;
int h l s;
int max min dif;

r = color_rgb->Red;
g = color_rgb->Green;
b = color_rgb->Blue;

max = maxOf3Values( r g b );
min = minOf3Values( r g b );
dif = max - min;

//计算l,亮度
l = ( max + min ) * 240 / 255 / 2;

//计算h,色度
if( max == min )//无定义
{
s = 0;
h = 0;
}
else
{
//计算色度
if( max == r )
{
if( min == b )//h介于0到40
{
h = 40 * ( g - b ) / dif;
}
else if( min == g )//h介于200到240
{
h = 40 * ( g - b ) / dif + 240;
}

}
else if( max == g )
{
h = 40 * ( b - r ) / dif + 80;
}
else if( max == b )
{
h = 40 * ( r

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2017-02-07 15:53  OV7725摄像头液晶颜色识别(1)\
     目录           0  2017-02-07 15:58  OV7725摄像头液晶颜色识别(1)\Doc\
     文件           0  2016-07-09 22:43  OV7725摄像头液晶颜色识别(1)\Doc\Readme.txt
     文件         162  2017-02-07 15:53  OV7725摄像头液晶颜色识别(1)\Doc\~$颜色识别原理.docx
     文件      106379  2017-02-07 14:16  OV7725摄像头液晶颜色识别(1)\Doc\颜色识别原理.docx
     目录           0  2017-02-07 15:53  OV7725摄像头液晶颜色识别(1)\HARDWARE\
     目录           0  2017-02-07 15:53  OV7725摄像头液晶颜色识别(1)\HARDWARE\ColorTracer\
     文件        8632  2017-02-07 13:27  OV7725摄像头液晶颜色识别(1)\HARDWARE\ColorTracer\ColorTracer.c
     文件        1131  2017-02-07 00:36  OV7725摄像头液晶颜色识别(1)\HARDWARE\ColorTracer\ColorTracer.h
     目录           0  2017-02-07 15:53  OV7725摄像头液晶颜色识别(1)\HARDWARE\LCD\
     文件           0  2017-01-22 21:20  OV7725摄像头液晶颜色识别(1)\HARDWARE\LCD\ascii.c
     文件        9145  2017-01-22 21:25  OV7725摄像头液晶颜色识别(1)\HARDWARE\LCD\ascii.h
     文件       29948  2017-01-22 22:29  OV7725摄像头液晶颜色识别(1)\HARDWARE\LCD\bsp_ili9341_lcd.c
     文件        7529  2017-01-26 13:14  OV7725摄像头液晶颜色识别(1)\HARDWARE\LCD\bsp_ili9341_lcd.h
     目录           0  2017-02-07 15:53  OV7725摄像头液晶颜色识别(1)\HARDWARE\LED\
     文件         814  2016-11-01 12:35  OV7725摄像头液晶颜色识别(1)\HARDWARE\LED\bsp_led.c
     文件        2973  2016-11-01 12:26  OV7725摄像头液晶颜色识别(1)\HARDWARE\LED\bsp_led.h
     目录           0  2017-02-07 15:53  OV7725摄像头液晶颜色识别(1)\HARDWARE\OV7725\
     文件        6764  2017-02-07 00:32  OV7725摄像头液晶颜色识别(1)\HARDWARE\OV7725\ov7725.c
     文件        7370  2017-01-26 13:20  OV7725摄像头液晶颜色识别(1)\HARDWARE\OV7725\ov7725.h
     目录           0  2017-02-07 15:53  OV7725摄像头液晶颜色识别(1)\HARDWARE\SCCB\
     文件        3755  2017-01-26 11:33  OV7725摄像头液晶颜色识别(1)\HARDWARE\SCCB\bsp_sccb.c
     文件        1377  2017-01-26 11:40  OV7725摄像头液晶颜色识别(1)\HARDWARE\SCCB\bsp_sccb.h
     目录           0  2017-02-07 15:53  OV7725摄像头液晶颜色识别(1)\HARDWARE\SPI_FLASH\
     文件        8358  2016-11-17 10:13  OV7725摄像头液晶颜色识别(1)\HARDWARE\SPI_FLASH\bsp_spi_flash.c
     文件        2667  2016-11-15 17:59  OV7725摄像头液晶颜色识别(1)\HARDWARE\SPI_FLASH\bsp_spi_flash.h
     目录           0  2017-02-07 15:53  OV7725摄像头液晶颜色识别(1)\HARDWARE\UART\
     文件        2124  2016-11-01 13:05  OV7725摄像头液晶颜色识别(1)\HARDWARE\UART\bsp_usart.c
     文件        4064  2016-11-01 12:43  OV7725摄像头液晶颜色识别(1)\HARDWARE\UART\bsp_usart.h
     文件         399  2011-05-09 18:17  OV7725摄像头液晶颜色识别(1)\keilkill.bat
     目录           0  2017-02-07 15:53  OV7725摄像头液晶颜色识别(1)\Libiraries\
............此处省略82个文件信息

评论

共有 条评论