Chinaunix首页 | 论坛 | 博客
  • 博客访问: 279763
  • 博文数量: 109
  • 博客积分: 2116
  • 博客等级: 大尉
  • 技术积分: 1062
  • 用 户 组: 普通用户
  • 注册时间: 2009-10-22 15:38
文章分类

全部博文(109)

文章存档

2013年(2)

2011年(16)

2010年(90)

2009年(1)

我的朋友

分类:

2010-07-25 11:29:01

//对比度拉伸
void CMyDIPView::OnMenuitem32777()
{
 
 // 获取文档
 CMyDIPDoc* pDoc = GetDocument();
 int i,j;
 int r1=60,r2=200;
 double k=1.5;
    unsigned char *lpSrc; 
 ASSERT_VALID(pDoc);
 if(pDoc->m_hDIB == NULL)
  return ;
 LPSTR lpDIB = (LPSTR) ::GlobalLock((HGLOBAL) pDoc->m_hDIB);
 LPSTR lpDIBBits=::FindDIBBits (lpDIB);
 int cxDIB = (int) ::DIBWidth(lpDIB);         // Size of DIB - x
 int cyDIB = (int) ::DIBHeight(lpDIB);        // Size of DIB - y
 long lLineBytes = WIDTHBYTES(cxDIB * 8);     // 计算图像每行的字节数
 // 每行
 for(i = 0; i < cyDIB; i++)
 {
  // 每列
  for(j = 0; j < cxDIB; j++)
  {
   // 指向DIB第i行,第j个象素的指针
   lpSrc = (unsigned char*)lpDIBBits + lLineBytes * (cyDIB - 1 - i) + j;
   // 计算新的灰度值
   if(*lpSrc   else if(*lpSrc   else *lpSrc=BYTE((*lpSrc-r2)/k+255-(255-r2)/k);
  }
 }
 ::GlobalUnlock((HGLOBAL) pDoc->m_hDIB);
    Invalidate(TRUE);
}
阅读(656) | 评论(0) | 转发(0) |
0

上一篇:方块编码

下一篇:阈值变换

给主人留下些什么吧!~~