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

直方图打开流程.doc

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

实验2 直方图的显示 在Dialog下添加对话框,然后再对话框上添加控件Group Box; 对Group Box添加类Dialog,和以下变量 public: int* pData; int m_Level; int m_Sizex; int m_LinePos; CString m_Title; bool bBar; 在Menu菜单下添加函数OnGray(), void CtxclView::OnGray() { // TODO: 在此添加命令处理程序代码 CtxclDoc* pDoc = GetDocument(); int Hist[256]={0}; GetHistgram(Hist,false); Dialog dlg; dlg.pData=Hist[0]; dlg.m_Sizex=256; dlg.m_LinePos=100; dlg.m_Title=_T(灰度直方图); dlg.m_Level=1; dlg.DoModal(); } 在.cpp中添加调用函数void CtxclView::GetHistgram(int* pHistgram,bool bSmooth) 在.h中protect下声明 void CtxclView::GetHistgram(int* pHistgram,bool bSmooth) { CtxclDoc* pDoc = GetDocument(); //获得直方图 int iMaxGrayValue = 0; int iMinGrayValue = 255; unsigned char* lpSrc; for (int i = StartPoint.y; i =EndPoint.y; i ++){ lpSrc = (unsigned char *)pDoc-m_pDib-m_lpImage + lLineBytes* (lHeight-1-i) + StartPoint.x-1; for (int j =StartPoint.x; j =EndPoint.x; j ++){ lpSrc++; int pixel = (int)*lpSrc; pHistgram[pixel]++; //修改最大,最小灰度值 if(iMinGrayValue pixel) iMinGrayValue = pixel; if(iMaxGrayValue pixel) iMaxGrayValue = pixel; } } if(!bSmooth) return; int tmpH[256]; memcpy(tmpH,pHistgram,256*sizeof(int)); //Gauss filter[7]2.0 //[32,60,88,100,88,60,32] /*double d1=exp(-1/(2.0*2.0*2.0)); double d2=exp(-4/(2.0*2.0*2.0)); double d3=exp(-9/(2.0*2.0*2.0)); */ for (int i = max(iMinGrayValue-2,2); i min(iMaxGrayValue+2,253);i++){ int tmp=0; tmp=(tmpH[i-2]+tmpH[i+2])*32+(tmpH[i-2]+tmpH[i+2])*60+(tmpH[i-1]+tmpH[i+1])*88+tmpH[i]*100; pHistgram[i]=tmp/460; } return ; } 在类视图中找到类Dialog,右击选择属性,分别添加函数 void Dialog::OnOK() { // TODO: Add your specialized code here and/or call the base class CDialog::OnOK(); } void Dialog::OnPaint() { CPaintDC dc(this); // device context for painting // TODO: Add your message handler code here // Do not call CDialog::OnPaint() for painting messages // 获取绘制直方图文本框的标签 CWnd* pWnd = GetDlgItem(IDC_DISPLAY_SHOW); // 获取设备上下文 CDC* pDC = pWnd-Ge

文档评论(0)

文档精品 + 关注
实名认证
内容提供者

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

版权声明书
用户编号:6203200221000001

1亿VIP精品文档

相关文档