请教C++高手

//直方图均衡化voidCBmpShowView::OnImghisteq(){CBmpShowDoc*pDoc=GetDocument();ASSERT_VALID(p... // 直方图均衡化
void CBmpShowView::OnImghisteq()
{
CBmpShowDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
ImgWidth = pDoc->nImgWidth;
ImgHeight = pDoc->nImgHeight;

LPBYTE lpDIBHdr;
LPBYTE lpDIBBits;
int i,j;

HPALETTE hOldPal = NULL;
HANDLE hDIB;
hDIB = pDoc->m_hDIB;

if(!hDIB)
return;

lpDIBHdr = (LPBYTE)GlobalLock(hDIB);
lpDIBBits = lpDIBHdr+sizeof(BITMAPINFOHEADER)+DIBNumColors(lpDIBHdr)*sizeof(RGBQUAD);

// 临时变量
long nTemp;
// 累积直方图,即灰度映射表
BYTE byMap[256];
// 直方图
int nCount[256];
// 重置计数为0
for (i = 0; i < 256; i ++)
{
// 清零
nCount[i] = 0;
}
// 计算各个灰度值的计数,即得到直方图
for (i = 0; i < ImgHeight; i ++)
{
for (j = 0; j < ImgWidth; j ++)
{
BYTE GrayValue = *(lpDIBBits+i*ImgWidth+j);

// 计数加1
nCount[GrayValue]++;
}
}

long ImgSize = ImgHeight*ImgWidth;
// 计算累积直方图
for (i = 0; i < 256; i++)
{
// 初始为0
nTemp = 0;

for (j = 0; j <= i ; j++)
{
nTemp += nCount[j];
}

// 计算对应的新灰度值
byMap[i] = (BYTE) (nTemp * 255/ImgSize);
}

for(i = 0; i < ImgHeight; i++)
{
// 每列
for(j = 0; j < ImgWidth; j++)
{
BYTE GrayValue = *(lpDIBBits+i*ImgWidth+j);
*(lpDIBBits+i*ImgWidth+j) = byMap[GrayValue];
}
}

pDoc->UpdateAllViews(NULL);
}
中前面一段:
// 直方图均衡化
void CBmpShowView::OnImghisteq()
{
CBmpShowDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
ImgWidth = pDoc->nImgWidth;
ImgHeight = pDoc->nImgHeight;

LPBYTE lpDIBHdr;
LPBYTE lpDIBBits;
int i,j;

HPALETTE hOldPal = NULL;
HANDLE hDIB;
hDIB = pDoc->m_hDIB;

if(!hDIB)
return;
什么意思?????
展开
 我来答
百度网友e86711b4af
2008-11-01 · TA获得超过675个赞
知道小有建树答主
回答量:752
采纳率:0%
帮助的人:154万
展开全部
MFC编程中绘制直方图。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
意法半导体(中国)投资有限公司
2023-06-12 广告
char seg7[10]={0xc0,0xf9,0xa4,0xb0,0x9,0x92,0x82,0xf8,0x80} sbit w1=b2^0; sbit w2=b2^1; sbit k1=b3^0; /=1表示键盘按下 char cou... 点击进入详情页
本回答由意法半导体(中国)投资有限公司提供
xiudewu
2008-11-01 · TA获得超过390个赞
知道小有建树答主
回答量:428
采纳率:0%
帮助的人:435万
展开全部
应该是简单的画图吧~~
老大啊!~这样学不了windows编程也学不会MFC,建议你看看《WINDOWS程序设计》或者《深入浅出MFC》,基本原理都不懂,拖一大堆或照搬一大堆代码是不可能理解的啊~~
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式