資源簡介
使用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個文件信息
評論
共有 條評論