?? recoprocess.cpp
字號(hào):
if ((1.0*MatchNum['A'-'A'+10]-MatchNum[4])/MatchNum[4] > 0.20)
break;
nCount = 0;
nAllCount = 0;
for (i=(int)(0.875*pLPCharImg->Height); i<pLPCharImg->Height; i++)
for (j=0; j<(0.25*pLPCharImg->Width+0.5); j++)
{
if (*(pLPCharImg->pImg+i*pLPCharImg->Width+j) == 255)
nCount++;
nAllCount++;
}
if (0 == nAllCount) break;
if (nCount*1.0/nAllCount > 0.3)
{
switch (LPNumType)
{
case LPNUM_ENNUM:
*pCarSignID = 'A'-'A'+10;
break;
}
}
break;
case 'A'-'A'+10:
if (MatchNum[10] == 0) break;
if ((1.0*MatchNum[4]-MatchNum[10])/MatchNum[10] > 0.20)
break;
nCount = 0;
nAllCount = 0;
for (i=(int)(0.875*pLPCharImg->Height); i<pLPCharImg->Height; i++)
for (j=0; j<(0.25*pLPCharImg->Width+0.5); j++)
{
if (*(pLPCharImg->pImg+i*pLPCharImg->Width+j) == 255)
nCount++;
nAllCount++;
}
if (0 == nAllCount) break;
if (nCount*1.0/nAllCount < 0.3)
{
switch (LPNumType)
{
case LPNUM_ENNUM:
*pCarSignID = 4;
break;
}
}
break;
case 'L'-'A'+10:
if (MatchNum['L'-'A'+10] == 0) break;
if ((1.0*MatchNum['D'-'A'+10]-MatchNum['L'-'A'+10])/MatchNum['L'-'A'+10] > 0.20)
break;
nCount = 0;
nAllCount = 0;
for (i=0; i<pLPCharImg->Height; i++)
for (j=(int)(0.5*pLPCharImg->Width); j<pLPCharImg->Width; j++)
{
if (*(pLPCharImg->pImg+i*pLPCharImg->Width+j) == 255)
nCount++;
nAllCount++;
}
if (0 == nAllCount) break;
if (nCount*1.0/nAllCount > 0.2)
{
switch (LPNumType)
{
case LPNUM_EN:
case LPNUM_ENNUM:
*pCarSignID = 'D'-'A'+10;
break;
}
}
break;
case 'U'-'A'+10:
if (MatchNum['U'-'A'+10] == 0) break;
if ((1.0*MatchNum[0]-MatchNum['U'-'A'+10])/MatchNum['U'-'A'+10] > 0.20 &&
(1.0*MatchNum['D'-'A'+10]-MatchNum['U'-'A'+10])/MatchNum['U'-'A'+10] > 0.20 &&
(1.0*MatchNum['O'-'A'+10]-MatchNum['U'-'A'+10])/MatchNum['U'-'A'+10] > 0.20 &&
(1.0*MatchNum['Q'-'A'+10]-MatchNum['U'-'A'+10])/MatchNum['U'-'A'+10] > 0.20)
break;
nCount = 0;
nAllCount = 0;
for (i=0; i<(int)(1.0/10*pLPCharImg->Height+0.5); i++)
for (j=(int)(1.0/4*pLPCharImg->Width); j<(int)(3.0/4*pLPCharImg->Width+0.5); j++)
{
if (*(pLPCharImg->pImg+i*pLPCharImg->Width+j) == 255)
nCount++;
nAllCount++;
}
if (0 == nAllCount) break;
if (nCount*1.0/nAllCount > 0.2)
{
switch (LPNumType)
{
case LPNUM_ENNUM:
*pCarSignID = 0;
RecoAgain(pCarSignID, pLPCharImg, MatchNum, LPNumType);
break;
case LPNUM_EN:
*pCarSignID = 'O'-'A'+10;
RecoAgain(pCarSignID, pLPCharImg, MatchNum, LPNumType);
break;
}
}
break;
case 'S'-'A'+10:
if (MatchNum['S'-'A'+10] == 0) break;
if ((1.0*MatchNum['G'-'A'+10]-MatchNum['S'-'A'+10])/MatchNum['S'-'A'+10] > 0.20 &&
(1.0*MatchNum[8]-MatchNum['S'-'A'+10])/MatchNum['S'-'A'+10] > 0.20)
break;
bFlag = FALSE;
nCount = 0;
i = (int)(0.33*pLPCharImg->Height+0.5);
for (j=0; j<pLPCharImg->Width; j++)
{
if (*(pLPCharImg->pImg+i*pLPCharImg->Width+j) == 255 && !bFlag)
{
bFlag = TRUE;
nCount++;
}
if (*(pLPCharImg->pImg+i*pLPCharImg->Width+j) == 0 && bFlag)
bFlag = FALSE;
}
bFlag = FALSE;
nAllCount = 0;
i = (int)(0.67*pLPCharImg->Height+0.5);
for (j=0; j<pLPCharImg->Width; j++)
{
if (*(pLPCharImg->pImg+i*pLPCharImg->Width+j) == 255 && !bFlag)
{
bFlag = TRUE;
nAllCount++;
}
if (*(pLPCharImg->pImg+i*pLPCharImg->Width+j) == 0 && bFlag)
bFlag = FALSE;
}
if (nCount <= 1 && nAllCount >=2)
{
switch (LPNumType)
{
case LPNUM_EN:
case LPNUM_ENNUM:
*pCarSignID = 'G'-'A'+10;
break;
}
}
if (nCount >= 2 && nAllCount >=2)
{
switch (LPNumType)
{
case LPNUM_NUM:
case LPNUM_ENNUM:
*pCarSignID = 8;
break;
}
}
break;
case 'C'-'A'+10:
if (MatchNum['C'-'A'+10] == 0) break;
if ((1.0*MatchNum[0]-MatchNum['C'-'A'+10])/MatchNum['C'-'A'+10] > 0.20 &&
(1.0*MatchNum['O'-'A'+10]-MatchNum['C'-'A'+10])/MatchNum['C'-'A'+10] > 0.20 &&
(1.0*MatchNum['Q'-'A'+10]-MatchNum['C'-'A'+10])/MatchNum['C'-'A'+10] > 0.20)
break;
bFlag = FALSE;
nCount = 0;
i = (int)(0.5*pLPCharImg->Height+0.5);
for (j=0; j<pLPCharImg->Width; j++)
{
if (*(pLPCharImg->pImg+i*pLPCharImg->Width+j) == 255 && !bFlag)
{
bFlag = TRUE;
nCount++;
}
if (*(pLPCharImg->pImg+i*pLPCharImg->Width+j) == 0 && bFlag)
bFlag = FALSE;
}
if (nCount > 1)
{
switch (LPNumType)
{
case LPNUM_EN:
*pCarSignID = 'O'-'A'+10;
RecoAgain(pCarSignID, pLPCharImg, MatchNum, LPNumType);
break;
case LPNUM_ENNUM:
*pCarSignID = 0;
RecoAgain(pCarSignID, pLPCharImg, MatchNum, LPNumType);
break;
}
}
break;
case 'B'-'A'+10:
if (MatchNum['B'-'A'+10] == 0) break;
if ((1.0*MatchNum[0]-MatchNum['B'-'A'+10])/MatchNum['B'-'A'+10] > 0.20 &&
(1.0*MatchNum['D'-'A'+10]-MatchNum['B'-'A'+10])/MatchNum['B'-'A'+10] > 0.20 &&
(1.0*MatchNum[8]-MatchNum['B'-'A'+10])/MatchNum['B'-'A'+10] > 0.20)
break;
bFlag = FALSE;
nCount = 0;
for (i=0; i<pLPCharImg->Height; i++)
{
j = (int)(1.0/2.0*pLPCharImg->Width);
if (*(pLPCharImg->pImg+i*pLPCharImg->Width+j)==255 && !bFlag)
{
nCount++;
bFlag = TRUE;
}
if (*(pLPCharImg->pImg+i*pLPCharImg->Width+j) == 0 && bFlag)
{
bFlag = FALSE;
}
}
if (nCount < 3)
{
switch (LPNumType)
{
case LPNUM_EN:
*pCarSignID = 'D'-'A'+10;
break;
case LPNUM_ENNUM:
*pCarSignID = 'D'-'A'+10;
RecoAgain(pCarSignID, pLPCharImg, MatchNum, LPNumType);
break;
}
}
else
{
nCount = 0;
nAllCount = 0;
for (i=0; i<(int)(0.1*pLPCharImg->Height+0.5); i++)
for (j=0; j<(int)(0.2*pLPCharImg->Width+0.5); j++)
{
if (*(pLPCharImg->pImg+i*pLPCharImg->Width+j) == 255)
nCount++;
nAllCount++;
}
if (0 == nAllCount) break;
if (nCount*1.0/nAllCount < 0.5)
{
switch (LPNumType)
{
case LPNUM_ENNUM:
*pCarSignID = 8;
break;
}
}
}
break;
case 'D'-'A'+10:
if (MatchNum['D'-'A'+10] == 0) break;
if ((1.0*MatchNum[0]-MatchNum['D'-'A'+10])/MatchNum['D'-'A'+10] > 0.20 &&
(1.0*MatchNum['Q'-'A'+10]-MatchNum['D'-'A'+10])/MatchNum['D'-'A'+10] > 0.20 &&
(1.0*MatchNum['O'-'A'+10]-MatchNum['D'-'A'+10])/MatchNum['D'-'A'+10] > 0.20)
break;
nCount = 0;
nAllCount = 0;
for (i=0; i<(int)(0.1*pLPCharImg->Height+0.5); i++)
for (j=0; j<(int)(0.2*pLPCharImg->Width+0.5); j++)
{
if (*(pLPCharImg->pImg+i*pLPCharImg->Width+j) == 255)
nCount++;
nAllCount++;
}
if (0 == nAllCount) break;
if (nCount*1.0/nAllCount < 0.5)
{
switch (LPNumType)
{
case LPNUM_EN:
*pCarSignID = 'O'-'A'+10;
RecoAgain(pCarSignID, pLPCharImg, MatchNum, LPNumType);
break;
case LPNUM_ENNUM:
*pCarSignID = 0;
RecoAgain(pCarSignID, pLPCharImg, MatchNum, LPNumType);
break;
}
}
break;
case 5:
if (MatchNum[5] == 0) break;
if ((1.0*MatchNum[8]-MatchNum[5])/MatchNum[5] > 0.20)
break;
bFlag = FALSE;
nCount = 0;
i = (int)(0.67*pLPCharImg->Height+0.5);
for (j=0; j<pLPCharImg->Width; j++)
{
if (*(pLPCharImg->pImg+i*pLPCharImg->Width+j) == 255 && !bFlag)
{
bFlag = TRUE;
nCount++;
}
if (*(pLPCharImg->pImg+i*pLPCharImg->Width+j) == 0 && bFlag)
bFlag = FALSE;
}
if (nCount > 1)
{
switch (LPNumType)
{
case LPNUM_NUM:
case LPNUM_ENNUM:
*pCarSignID = 8;
break;
}
}
break;
case 'K'-'A'+10:
if (MatchNum['K'-'A'+10] == 0) break;
if ((1.0*MatchNum['A'-'A'+10]-MatchNum['K'-'A'+10])/MatchNum['K'-'A'+10] > 0.20)
break;
bFlag = FALSE;
nCount = 0;
i = (int)(0.67*pLPCharImg->Height+0.5);
for (j=0; j<pLPCharImg->Width; j++)
{
if (*(pLPCharImg->pImg+i*pLPCharImg->Width+j) == 255 && !bFlag)
{
bFlag = TRUE;
nCount++;
}
if (*(pLPCharImg->pImg+i*pLPCharImg->Width+j) == 0 && bFlag)
bFlag = FALSE;
}
if (nCount > 1)
{
switch (LPNumType)
{
case LPNUM_EN:
case LPNUM_ENNUM:
*pCarSignID = 'A'-'A'+10;
break;
}
}
break;
case 6:
if (MatchNum[6] == 0) break;
if ((1.0*MatchNum[5]-MatchNum[6])/MatchNum[6] > 0.20)
break;
bFlag = FALSE;
nCount = 0;
i = (int)(0.67*pLPCharImg->Height+0.5);
for (j=0; j<pLPCharImg->Width; j++)
{
if (*(pLPCharImg->pImg+i*pLPCharImg->Width+j) == 255 && !bFlag)
{
bFlag = TRUE;
nCount++;
}
if (*(pLPCharImg->pImg+i*pLPCharImg->Width+j) == 0 && bFlag)
bFlag = FALSE;
}
if (nCount <= 1)
{
switch (LPNumType)
{
case LPNUM_NUM:
case LPNUM_ENNUM:
*pCarSignID = 5;
break;
}
}
break;
case 3:
if (MatchNum[3] == 0) break;
if ((1.0*MatchNum[8]-MatchNum[3])/MatchNum[3] > 0.20 &&
(1.0*MatchNum[7]-MatchNum[3])/MatchNum[3] > 0.20)
break;
bFlag = FALSE;
nCount = 0;
i = (int)(0.67*pLPCharImg->Height+0.5);
for (j=0; j<pLPCharImg->Width; j++)
{
if (*(pLPCharImg->pImg+i*pLPCharImg->Width+j) == 255 && !bFlag)
{
bFlag = TRUE;
nCount++;
}
if (*(pLPCharImg->pImg+i*pLPCharImg->Width+j) == 0 && bFlag)
bFlag = FALSE;
}
bFlag = FALSE;
nAllCount = 0;
i = (int)(0.33*pLPCharImg->Height+0.5);
for (j=0; j<pLPCharImg->Width; j++)
{
if (*(pLPCharImg->pImg+i*pLPCharImg->Width+j) == 255 && !bFlag)
{
bFlag = TRUE;
nAllCount++;
}
if (*(pLPCharImg->pImg+i*pLPCharImg->Width+j) == 0 && bFlag)
bFlag = FALSE;
}
if (nCount > 1 || nAllCount > 1)
{
switch (LPNumType)
{
case LPNUM_NUM:
case LPNUM_ENNUM:
*pCarSignID = 8;
break;
}
}
else
{
bFlag = FALSE;
nCount = 0;
for (i=0; i<pLPCharImg->Height; i++)
{
j = (int)(1.0/2.0*pLPCharImg->Width);
if (*(pLPCharImg->pImg+i*pLPCharImg->Width+j)==255 && !bFlag)
{
nCount++;
bFlag = TRUE;
}
if (*(pLPCharImg->pImg+i*pLPCharImg->Width+j) == 0 && bFlag)
{
bFlag = FALSE;
}
if (nCount<3)
{
switch (LPNumType)
{
case LPNUM_ENNUM:
case LPNUM_NUM:
*pCarSignID = 7;
break;
}
}
}
}
break;
}
return 1;
}
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -