/**************************************************
BOOL CImgProcess::Histeq(CImgProcess * pTo)
功能:
图像的灰度直方图均衡化方法
参数:
CImgProcess * pTo
输出CImgProcess对象的指针
返回值:
BOOL类型,true为成功,false为失败
***************************************************/
BOOL CImgProcess::Histeq(CImgProcess * pTo)
{
// 首先检查图像是否是8位灰度图像
if (m_pBMIH->biBitCount!=8) return false;
BYTE gray; // 临时变量,存储当前光标像素的灰度值
int target; // 临时变量,存储当前光标像素的目标值
double pdHist[256]; //临时变量,存储灰度直方图
double dTemp; // 临时变量,存储累加的直方图数据
this->GenHist(pdHist);
for (int i=0; i<m_pBMIH->biHeight; i++)
{
for (int j=0; j<m_pBMIH->biWidth; j++)
{
dTemp = 0;
gray = GetGray(j, i);
for (BYTE k=0; k<gray; k++)
{
dTemp+=*(pdHist + k);
};
target = 255 * dTemp;
if (target < 0) target = 0;
if (target > 255) target = 255;
// 写入目标图像
pTo->SetPixel(j, i, RGB(target, target, target));
}
};
return true;
}
CImgProcess::Histeq(CImgProcess * pTo) 图像的灰度 均衡化
最新推荐文章于 2019-08-03 09:42:01 发布