附录 A 灰度化程序代码
void CTypeRecView::OnTempPalette()
{
CDC *pDC=GetDC();
CString str;
int nColorNum=pDC->GetDeviceCaps(SIZEPALETTE);
str.Format("当前系统调色板可同时显示的颜色数为%d.",nColorNum);
AfxMessageBox(str);
int nColorReserved=pDC->GetDeviceCaps(NUMRESERVED);
str.Format("当前系统调色板保留的颜色数为%d。",nColorReserved);
AfxMessageBox(str);
ReleaseDC(pDC);
}
附录 B 二值化程序主要代码
{
for(i=0;i<lHeight;i++) // int iMax1GrayValue=0;
{
for(j=0;j<lWidth;j++) // int iMax2GrayValue=0;
{
lpSrc = (unsigned char*)lpDIBBits + lLineBytes * (lHeight - 1 - i) + j;
pixel=(unsigned char)(*lpSrc);
lHistogram[pixel]++;
}
}
for(i=0;i<256;i++)
{ //找最大灰度值点为背景灰度值
if(iMax1GrayValue<lHistogram[i])
{
iMax1GrayValue=i;
}
else
if(iMax2GrayValue<iMax1GrayValue&&iMax2GrayValue-
1<iMax2GrayValue&&iMax2GrayValue+1<iMax2GrayValue)
{iMax2GrayValue=i;}
}