资源简介
使用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个文件信息
相关资源
- 51单片机到TC35(GSM)发送接收程序
- 基于STM32F407的OTM8009液晶显示驱动
- PIC单片机433遥控软件解码
- 基于STM32的GPS定位接收显示
- TM1640实现两根数据线控制8x16点阵
- 一种基于DDS芯片AD9835的多种信号发生
- TFT 240*320 ST7789 C51-STC单片机
- 基于MPX4115的数字压力测量仪的设计
- 单片机GPS接收LCD12864显示Keil程序
- 基于单片机的红外风扇遥控原理图与
- STM32F103+GPRS原理图 PCB制作PM2.5检测仪和
- DELPHI 控制摄像头拍照,截取任意矩形
- 单片机原理及应用期末考试试题汇总
- STM32F030实现AM2302模块,stm32stm8系列基
- MSC51单片机 汇编语言 循环显示0到99程
- 单片机发射摩尔斯电码
- 单片机参考文献目录,撰写论文需要
- stm32f1+esp8266+温湿度+光强+噪音+红外检
- 基于单片机的路灯自动控制系统
- 矩阵键盘堪称一绝的键盘扫描方法
- 三字节乘以三字节mcs-51单片机
- STM32H743全部封装IO引脚分配表.xlsx
- proteldxp STC单片机元件库
- STM32F103下的编码器程序
- 单片机 STC89C52 温度传感器
- stm32读取陀螺仪MPU6050发送数据到串口
- 51单片机Ds1302及温度Ds18B20+1602液晶显示
- STM32控制锁相环频综芯片HMC704的程序
- 基于89C51单片机的脉冲宽度的测量设计
- 单片机取字模软件(好用
评论
共有 条评论