上海电力学院。
实验报告。实验课程名称数字图像处理实验项目名称: 实验7 细胞面积计算与个数统计。
班级2009073
姓名。学号。
一、实验目的。
1、熟悉visual c++开发环境和windows编程模型。
2、掌握设备无关位图的数据格式。
3、学会使用dibapi函数访问设备无关位图。
4、结合实例学习如何在应用程序中添加图像处理算法。
5、运用所学的图像处理方法对细胞图像进行细胞面积计算与个数统计。
二、实验原理。
在填充孔洞以后的细胞图像**现粘连,可以通过较为复杂的算法将粘连细胞分割开来。这里采取如下简单方法进行细胞计数和面积计算。
1)对填充孔洞后后细胞图像进行标记处理,初步计算出细胞的个数;
2)计算不同标记区域的像素数,并用区域的像素数代表其面积;
3)若某个标记区域像素数大于1000,则认为该标记区域为两个粘连在一起的细胞,原细胞数量增加1;若某个标记区域像素数小于70,则视为噪声,原细胞数量减1。
三、实验步骤。
1、在资源浏览方式下,选择menu节点,点击idr_mainframe,增加操作按钮,见下图,如在菜单“细胞计数”中添加“统计个数和面积”按钮。
2、对该按钮进行编辑,如图:
id设为id_cellcount e,标题设为“统计个数和面积”。
3、(1)按下快捷键ctrl+w,弹出向导对话框,利用向导在ccellcounview类中添加响应函数—腐蚀oncellcount,如图:
2)点击edit code按钮后,在文件中便添加了oncellcount ()函数,此时需要在该函数中添加实现**,具体如下:
void ccellcountview::oncellcount()
ccellcountdoc* pdoc=getdocument();
if( pdoc->m_hdib!=null )
3)在文件中添加
void mark(lpstr p_data,long wide,long height);/标记连通区域。
void area(hdib hdib);/计算面积。
int x_sign;
int m_temp;
int x_temp;
int y_temp;
int flag[255];
int fg[255];
byte *p_temp;
int step;
在文件添加如下函数及**:
/连通区域标记。
void ccellcountview::mark(lpstr p_data,long wide,long height)
//把类中的变量初始化。
x_sign=0;
m_temp=0;
x_temp=0;
y_temp=0;
flag[255];
memset(flag,0,255);
p_temp=new byte[wide*height];/开辟一个临时内存区。
memset(p_temp,255,wide*height);
从左到右标号。
for(int j=1;j
// 更改光标形状。
beginwaitcursor();
dib的宽度。
long lwidth = dibwidth(lpdib);
// dib的高度。
long lheight = dibheight(lpdib);
mark(lpdibbits, lwidth,lheight); 调用标记函数。
int i;
memset(fg,0,255);/初始化赋值都为0
int j=0;
int cellcount=0;
cellcount=0;
for(i=1;i<=x_sign;i++)从标号1到最后。
cresultdlg m_resultdlg;
数字图像处理作业
2017暑假小学期。专业。班级。姓名。学号。摘要 数字图像处理的目的是改善 质量,利用matlab设计几个简单的图像处理程序。该程序具备图像处理的日常功能 图像代数与几何运算 直方图与图像明暗关系分析 直方图均衡化 滤波器的使用与图像分割技术。通过运行 解释结合图像效果,分别介绍了处理原理与过程。关...
数字图像处理作业
图1是一张因拍摄时晃动而产生模糊的图像,试估计其psf并恢复图像。题中已明确此图是由于运动导致的模糊,所以采取课件上标准的恢复方法。首先,对 进行laplace滤波,是为了凸显图像中的高频部分,而后对图像进行radon变换以求出运动模糊的角度,由于角度标准和方向问题,需要将求出的角度减去90 也即。...
数字图像处理作业
数字图像处理上机实验题。一 基础部分。1.产生右图所示图像 f1 m,n 其中图像大小为256 256,中间亮条为128 32,暗处 0,亮处 100。对其进行fft 1 同屏显示原图f1 m,n 和fft f1 的幅度谱图 2 若令f2 m,n 1 m n f1 m,n 重复以上过程,比较二者幅度...