4.7编程实例.ppt

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

* 第四章 图像增强与平滑 4.7 编 程 实 例 4.7.1 编程绘制灰度直方图 1. 创建灰度直方图数据 //******************************************* //函数名称: CreateHistogram() //参数说明: nX1、 nY1、 nX2、 nY2为需创建直方图图像区域坐标, 默认为- // 1。pData、pPalette、 nWidthBytes为位图数据指针、调色板指 // 针、 图像行字节宽度 //返回值: int型数组指针*pBuffer。在数组中依次存储亮度、红、绿、蓝分量 // 的直方图数据, 每个分量各占256个元素[FK)] //基本功能:创建指定的图像对象的直方图数据。如果未给定坐标,则针对整 个图像 //**************************************** int *CPointPro:: CreateHistogram(int nX1, int nY1, int nX2, int nY2, unsigned char *pData, RGBQUAD *pPalette, int nWidthBytes) { //图像指针为空, 无法操作返回 if(m_pDibObject == NULL) return(FALSE);  //分配直方图数据缓存区(数组) int *pBuffer = new int [256 * 4];  //分配直方图数据缓存区失败 if(pBuffer == NULL) return( NULL );  //直方图数据缓存区清零 memset(pBuffer, 0, (256 * 4) * sizeof(int));  //变量定义 DWORD dwGray;  int x, y; unsigned char *pTemp, ucRed, ucGreen, ucBlue; //图像的高度 int nHeight = m_pDibObject-GetHeight(); switch(m_pDibObject-GetNumBits()) { case 24:  for(y = nY1; y nY2; y++) { //数据指针定位到图像数据起始位置 pTemp = pData; //数据指针定位到图像数据每行的起始零位置 pTemp += (( nHeight - 1 - y) * nWidthBytes); //数据指针定位到图像数据每行的起始nX1位置 pTemp += (nX1 * 3); for(x=nX1; x=nX2; x++) { //获取像素颜色的三原色 ucRed = pTemp[x * 3 + 2]; ucGreen = pTemp[x * 3 + 1]; ucBlue = pTemp[x * 3]; //按关系L=0.3R+0.59G+0.11B, 得到亮度值 dwGray = (DWORD) (ucRed * 30 + ucGreen * 59 + ucBlue * 11) / 100; dwGray = 0x000000ff;  //亮度直方图数据 pBuffer[dwGray]++; //红色直方图数据 pBuffer[256 + ucRed]++; //绿色直方图数据 pBuffer[512 + ucGreen]++; //蓝色直方图数据 pBuffer[768 + ucBlue]++; //数据指针加3 pTemp += 3; } } break; } return( pBuffer ); } 2. 定制灰度直方图对话框 定制一个直方图对话框并创建一个CDlgIntensity类, 在它的构造函数中初始化成员变量(例如, 初始化直方图数据指针m_pnHistogram = NULL), 添加WM_PAINT的消息映射函数On

文档评论(0)

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

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

1亿VIP精品文档

相关文档