细菌分割与统计程序程序讲解.ppt

  1. 1、本文档共41页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
细菌分割与统计程序;程序功能要求;对位图的认识;黑白图像,电脑中存储的是每个像素点的灰度信息。灰度用一字节表示(0-255),数值越高表明越亮。以3x3图像灰度信息举例。 ;打开细菌图像及二值化;细菌标号算法;示例;判断准则;VC6.0基本使用方法;打开ResourceView—menu—IDR_MAINFRAME修改菜单, 添加控件。;C++类的概念 ;MFC;Windows应用程序,操作系统,计算机硬件之间的相互关系 ;消息响应;消息响应举例;具体程序实现 1.建立工程和控件;2.加入相关的API函数;3.在doc类(CImagetestDoc类)中添加变量;4.改写Doc类构造函数和析构函数;5.改为带滚动条的窗口;CImagetestView类中添加public函数 void CImagetestView::OnInitialUpdate() { CScrollView::OnInitialUpdate(); CSize sizeTotal; // TODO: calculate the total size of this view // sizeTotal.cx = sizeTotal.cy = 100; SetScrollSizes(MM_TEXT, GetDocument()-m_nDocSize); } void CImagetestView::OnSize(UINT nType, int cx, int cy) { CScrollView::OnSize(nType, cx, cy); };6.读取打开位图;OnOpenDocument消息响应函数;在CImagetestDoc类中添加OnOpenDocument ()函数;在CImagetestDoc类中添加ReadImgFile ()函数;在CImagetestDoc类中添加InitDIBData()函数;改写view类中的ondraw函数,显示位图;7.直方图显示;直方图显示程序; double * count=new double[256]; memset(count,0,256*sizeof(double)); int i,j; for(i = 0; i cyDIB; i++) for(j = 0; j cxDIB; j++) { lpSrc = (unsigned char*)lpDIBBits + lLineBytes * (cyDIB - 1 - i) + j; count[*lpSrc]=count[*lpSrc]+1; } double max=-1; int indexmax; for(i=0;i256;i++) if(count[i]max) { max=count[i]; indexmax=i; } for(i=0;i256;i++) count[i]=count[i]/max; // 创建蓝色画笔对象 CPen* pPenRed = new CPen; pPenRed-CreatePen(PS_SOLID,1,RGB(0,0,155)); dc-SelectObject(pPenRed); for(i=0;i256;i++) { dc-MoveTo (cxDIB+20+i,355); dc-LineTo (cxDIB+20+i,int(355-330*count[i])); } dc-TextOut (cxDIB+20,360,0); dc-TextOut (cxDIB+20+50-1,360,50); dc-TextOut (cxDIB+20+100-2,360,100); dc-TextOut (cxDIB+20+150-2,360,150); dc-TextOut (cxDIB+20+200-2,360,200); dc-TextOut (cxDIB+20+255-2,360,255); ::DeleteObject (font); };8.二值化函数的编写; //将中间结果写入到文本文件以便后续分析 FILE *fp; fp=fopen(count1.txt,w+); for(i = 0; i 256; i++) fprintf(fp,%d ,count1[i]); fclose(fp); //对count1序列进行分段累积,形成count2 for(i=0;i256;i++) count2[i/4]=(count1[i]+count1[i+1]+count1[i+2]+count1[i+3])/4; //找出差值序列 for(i=0;i63;i++) coun

文档评论(0)

178****4446 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档