91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

資源簡介

stm32顏色識別追蹤算法。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。

資源截圖

代碼片段和文件信息

#include?“EasyTracer.h“

#define?min3v(v1?v2?v3)???((v1)>(v2)??((v2)>(v3)?(v3):(v2)):((v1)>(v3)?(v3):(v1)))
#define?max3v(v1?v2?v3)???((v1)<(v2)??((v2)<(v3)?(v3):(v2)):((v1)<(v3)?(v3):(v1)))

typedef?struct{
????unsigned?char??red;?????????????//?[0255]
????unsigned?char??green;???????????//?[0255]
????unsigned?char??blue;????????????//?[0255]
}COLOR_RGB;//RGB格式顏色

typedef?struct{
????unsigned?char?hue;??????????????//?[0240]
????unsigned?char?saturation;???????//?[0240]
????unsigned?char?luminance;????????//?[0240]
}COLOR_HSL;//HSL格式顏色

typedef?struct{
????unsigned?int?X_Start;
????unsigned?int?X_End;
unsigned?int?Y_Start;
????unsigned?int?Y_End;
}SEARCH_AREA;//區域

//讀取RBG格式顏色,唯一需要移植的函數
extern?unsigned?short?GUI_ReadBit16Point(unsigned?short?xunsigned?short?y);
static?void?ReadColor(unsigned?int?xunsigned?int?yCOLOR_RGB?*Rgb)
{
unsigned?short?C16;

C16?=?GUI_ReadBit16Point(xy);

Rgb->red???= ?(unsigned?char)((C16&0xf800)>>8);
Rgb->green?= ?(unsigned?char)((C16&0x07e0)>>3);
Rgb->blue??=?????(unsigned?char)((C16&0x001f)<<3);
}



//RGB轉HSL
static?void?RGBtoHSL(const?COLOR_RGB?*Rgb?COLOR_HSL?*Hsl)
{
????int?hslmaxValminValdifVal;
int?r??=?Rgb->red;
int?g??=?Rgb->green;
????int?b??=?Rgb->blue;

maxVal?=?max3v(r?g?b);
minVal?=?min3v(r?g?b);

difVal?=?maxVal-minVal;

//計算亮度
????l?=?(maxVal+minVal)*240/255/2;

if(maxVal?==?minVal)//若r=g=b
{
h?=?0;
s?=?0;
}
else
{
//計算色調
if(maxVal==r)
{
if(g>=b)
h?=?40*(g-b)/(difVal);
else
h?=?40*(g-b)/(difVal)?+?240;
}
else?if(maxVal==g)
h?=?40*(b-r)/(difVal)?+?80;
else?if(maxVal==b)
h?=?40*(r-g)/(difVal)?+?160;
//計算飽和度
if(l?==?0)
s?=?0;
else?if(l<=120)
s?=?(difVal)*240/(maxVal+minVal);
else
s?=?(difVal)*240/(480?-?(maxVal+minVal));
}
????Hsl->hue?=????????(unsigned?char)(((h>240)??240?:?((h<0)?0:h)));
????Hsl->saturation?=?(unsigned?char)(((s>240)??240?:?((s<0)?0:s)));
????Hsl->luminance?=??(unsigned?char)(((l>240)??240?:?((l<0)?0:l)));
}

//匹配顏色
static?int?ColorMatch(const?COLOR_HSL?*Hslconst?TARGET_CONDI?*Condition)
{
if(
Hsl->hue > Condition->H_MIN?&&
Hsl->hue < Condition->H_MAX?&&
Hsl->saturation > Condition->S_MIN?&&
Hsl->saturation S_MAX?&&
Hsl->luminance > Condition->L_MIN?&&
Hsl->luminance L_MAX
????)
return?1;???//成功返回1
else
return?0;
}

//搜索腐蝕中心??成功返回1
static?int?SearchCentre(unsigned?int?*xunsigned?int?*yconst?TARGET_CONDI?*Conditionconst?SEARCH_AREA?*Area)
{
unsigned?int?SpaceXSpaceYijkFailCount=0;
COLOR_RGB?Rgb;
COLOR_HSL?Hsl;

SpaceX?=?Condition->WIDTH_MIN/3;
SpaceY?=?Condition->HIGHT_MIN/3;

for(i=Area->Y_Start;iY_End;i+=SpaceY)
{
for(j=Area->X_Start;jX_End;j+=SpaceX)
{
FailCount=0;
for(k=0;k {
if(k ReadColor(j+ki+SpaceY/2&Rgb);
else
ReadColor(j+SpaceX

?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----

?????文件???????6145??2017-08-10?09:22??stm32顏色識別追蹤算法\EasyTrace\EasyTracer.c

?????文件???????1194??2012-09-28?19:58??stm32顏色識別追蹤算法\EasyTrace\EasyTracer.h

?????目錄??????????0??2017-08-10?09:22??stm32顏色識別追蹤算法\EasyTrace

?????目錄??????????0??2018-04-16?19:57??stm32顏色識別追蹤算法

-----------?---------??----------?-----??----

?????????????????7339????????????????????4


評論

共有 條評論