资源简介
使用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个文件信息
相关资源
- STM32F103RC+ADC+DMA多通道采样LCD显示
- 51 单片机 红外避障小车 大集合136
- I2C读写AT24C02 基于STM32F103 cube116540
- 基于stm32f103ve的程序——跑马灯实验
- 基于STM32RCT6的步进电机驱动程序
- stm32f407上的两个can发送和接收例程
- STM32 led 时钟
- STM32 2.4G通信例程
- STC8951系列单片机中方指南
- 直流无刷电机方波驱动 stm32 例程代码
- STM32中文资料
- 基于MCS_51单片机的工业屏柜散热方案
- MCS_51单片机与8255A的接口设计
- STM32蓝牙和串口程序
- STM32f103超声波模块例程
- stm32f103c8t6 4 oled.rar
- stm32f030 IAP Demo(原创)
- 飞思卡尔单片机MC9S12XS12G128驱动(硬件
- 51单片机PWM程序,占空比、周期可调整
- 单片机和adc0809数字电压表
- PIC单片机完成的电子密码锁
- 单片机、ADC0808809设计简易数字电压表
- 51单片机多功能自行车测速仪
- 单片机做的6位时分秒数字钟
- 单片机电子时钟 闹钟 日历
- STM32基于rt_thread操作系统的SDHC卡文件
- 音乐代码转换软件 单片机编程时用
- 单片机课程设计 篮球计分器
- 00
- 用51单片机实现G代码翻译
评论
共有 条评论