网站大量收购独家精品文档,联系QQ:2885784924

数字图像处理程序集..doc

  1. 1、本文档共11页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数字图像处理程序集.

本程序实现了图像的均衡化,运用直方图均衡化处理的“中心思想”把原始图像的灰度直方图从比较集中的某个灰度区间变成在全部灰度范围内的均匀分布对图像进行非线性拉伸,重新分配图像像素值,使一定灰度范围内的像素数量大致相同。在实际处理变换时,先对原始图像的灰度情况进行统计分析,并计算出原始直方图分布,然后根据计算出的累计直方图分布求出fk到gk的灰度映射关系。重复上述步骤得到源图像所有灰度级到目标图像灰度级的映射关系后,按照这个映射关系对源图像各点像素进行灰度转换,即完成对源图的直方图均衡化。 #include stdafx.h #include cv.h #include highgui.h #pragma comment (lib, cxcore.lib) #pragma comment (lib, cv.lib) #pragma comment (lib, highgui.lib) long TestFunc(CPlatformDoc *pDoc) { int nWidth = pDoc-m_ImgSource.GetWidth(); int nHeight = pDoc-m_ImgSource.GetHeight(); pDoc-m_ImgResult.Create(nWidth, nHeight, pDoc-m_ImgSource.GetBPP()); LPBYTE pData1 = (LPBYTE)pDoc-m_ImgSource.GetBits(); LPBYTE pData2 = (LPBYTE)pDoc-m_ImgResult.GetBits(); int histo[256]; memset(histo,0,sizeof(int)*256); int x,y; for(y = 0 ; y nHeight ; y++) for(x = 0 ; x nWidth ; x++) { int t= (*(pData1+pDoc-m_ImgSource.GetPitch()*y+3*x)+*(pData1+pDoc-m_ImgSource.GetPitch()*y+3*x+1)+*(pData1+pDoc-m_ImgSource.GetPitch()*y+3*x+2))/3; histo[t]++; } double ahisto[256]; ahisto[0] = histo[0]; for(x = 1 ; x 256 ; x++) ahisto[x] = ahisto[x-1]+histo[x]; int lookup[256]; for(x = 0 ; x 256 ; x++) lookup[x] = int(ahisto[x]*255/nWidth/nHeight+x/256.0); for(y = 0 ; ynHeight ; y++ ) for(x = 0 ; x nWidth ; x++) { int t = *(pData1+pDoc-m_ImgSource.GetPitch()*y+x*3); *(pData2+pDoc-m_ImgSource.GetPitch()*y+x*3) = lookup[t]; *(pData2+pDoc-m_ImgSource.GetPitch()*y+x*3+1) = lookup[t]; *(pData2+pDoc-m_ImgSource.GetPitch()*y+x*3+2) = lookup[t]; } return 0; } 均衡化前 均衡化后 本程序实现了图像的颜色渐变效果。(此程序原为课本例题) #include stdafx.h #include cv.h #include highgui.h #include math.h IplImage* pSrcImg=0; ☆源图像指针 IplImage* pDstImg=0; ☆目标图像指针 void UpdateGradientCoef(int nCoef) { CvPoint cenPoint=cvPoint(pSrcImg→width/2,pSrcImg→heigth/2); ☆图像中心点 double fGradCoef; fGradCoef=(nCoef-100)/10; for(int i=0;ipSrcImg→heigth;i++) ☆计算灰度渐变后的像素

您可能关注的文档

文档评论(0)

s4as2gs2cI + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档