数字图像处理期末作业1

合集下载

数字图像期末考试试题

数字图像期末考试试题

数字图像期末考试试题# 数字图像处理期末考试试题## 一、选择题(每题2分,共20分)1. 在数字图像处理中,灰度化处理通常使用以下哪种方法?A. 直接取RGB三个通道的平均值B. 只取红色通道C. 只取绿色通道D. 只取蓝色通道2. 边缘检测是图像处理中的一个重要步骤,以下哪个算法不是边缘检测算法?A. Sobel算子B. Canny算子C. Laplacian算子D. Gaussian模糊3. 在图像增强中,直方图均衡化的目的是什么?A. 增加图像的对比度B. 减少图像的噪声C. 改善图像的色彩D. 锐化图像的边缘4. 以下哪个是图像滤波中常用的高通滤波器?A. 高斯滤波器B. 均值滤波器C. Laplacian滤波器D. 中值滤波器5. 在图像分割中,阈值分割法是基于什么原理?A. 图像的纹理特征B. 图像的灰度分布C. 图像的颜色分布D. 图像的几何形状## 二、简答题(每题10分,共30分)1. 简述数字图像的基本属性及其在图像处理中的重要性。

2. 描述图像锐化的基本步骤,并解释为什么锐化可以提高图像的可读性。

3. 解释什么是图像的傅里叶变换,并简述其在图像处理中的应用。

## 三、计算题(每题25分,共50分)1. 给定一个大小为 \( 256 \times 256 \) 的灰度图像,其像素值范围从0到255。

计算该图像的直方图,并说明如何根据直方图进行图像的对比度增强。

2. 假设有一个图像,其尺寸为 \( 100 \times 100 \) 像素,且每个像素的灰度值为 \( g(x, y) \)。

请写出使用高斯滤波器对图像进行平滑处理的公式,并描述其对图像噪声的影响。

## 四、综合应用题(共30分)1. 描述如何使用Canny边缘检测算法进行图像边缘的提取,并解释其算法的步骤和原理。

2. 给出一个实际应用场景,说明如何利用图像分割技术来解决该场景中的问题。

## 五、论述题(共30分)1. 论述数字图像处理在医学成像领域的应用,并讨论其对提高诊断准确性的潜在影响。

《数字图像处理》期末大作业(1)

《数字图像处理》期末大作业(1)

《数字图像处理》期末大作业大作业题目及要求:一、题目:本门课程的考核以作品形式进行。

作品必须用Matlab完成。

并提交相关文档。

二、作品要求:1、用Matlab设计实现图形化界面,调用后台函数完成设计,函数可以调用Matlab工具箱中的函数,也可以自己编写函数。

设计完成后,点击GUI图形界面上的菜单或者按钮,进行必要的交互式操作后,最终能显示运行结果。

2、要求实现以下功能:每个功能的演示窗口标题必须体现完成该功能的小组成员的学号和姓名。

1)对于打开的图像可以显示其灰度直方图,实现直方图均衡化。

2)实现灰度图像的对比度增强,要求实现线性变换和非线性变换(包括对数变换和指数变换)。

3)实现图像的缩放变换、旋转变换等。

4)图像加噪(用输入参数控制不同噪声),然后使用空域和频域进行滤波处理。

5)采用robert算子,prewitt算子,sobel算子,拉普拉斯算子对图像进行边缘提取。

6)读入两幅图像,一幅为背景图像,一幅为含有目标的图像,应用所学的知识提取出目标。

3、认真完成期末大作业报告的撰写,对各个算法的原理和实验结果务必进行仔细分析讨论。

报告采用A4纸打印并装订成册。

附录:报告模板《数字图像处理》期末大作业班级:计算机小组编号:第9组组长:王迪小组成员:吴佳达浙江万里学院计算机与信息学院2014年12月目录(自动生成)1 绘制灰度直方图,实现直方图均衡化 (5)1.1 算法原理 (5)1.2 算法设计 (5)1.3 实验结果及对比分析 (5)2 灰度图像的对比度增强 (5)2.1 算法原理 (5)2.2 算法设计 (5)2.3 实验结果及分析 (5)3 图像的几何变换 (5)3.1 算法原理 (5)3.2 算法设计 (5)3.3 实验结果及分析 (5)4 图像加噪(用输入参数控制不同噪声),然后使用空域和频域进行滤波处理 (5)4.1 算法原理 (5)4.2 算法设计 (6)4.3 实验结果及分析 (6)5 采用robert,prewitt,sobel,拉普拉斯算子对图像进行边缘提取 (6)5.1 算法原理 (6)5.2 算法设计 (6)5.3 实验结果及分析 (6)6 读入两幅图像,一幅为背景图像,一幅为含有目标的图像,应用所学的知识提取出目标 (6)6.1 算法原理 (6)6.2 算法设计 (6)6.3 实验结果及分析 (6)7 小结(感受和体会) (6)1 绘制灰度直方图,实现直方图均衡化1.1 算法原理图像增强是指按特定的需要突出一幅图像中的某些信息,同时,消弱或去除某些不需要的信息的处理方法。

武汉大学《数字图像处理》期末考试试卷及答案

武汉大学《数字图像处理》期末考试试卷及答案
课程代号: 课程名称:数字 图 像 处 理
一、 单项选择题(每小题 1 分,共 10 分) 1.d 2.b 3.d 4.b 5.d 6.c 7.b 8.c 9.d 10.a 二、 填空题(每空 1 分,共 15 分) 1.频率域 2.4-邻域 8-邻域(不分先后) 3.直方图均衡 直方图规定化(不分先后)
4.细化
5.无失真编码
四、判断改错题(下列命题是否正确,正确的就在题号前的括弧内打“√” ,错误的打 “×”并改正。每小题 2 分,共 10 分) ( ) 1. 灰度直方图能反映一幅图像各灰度级像元占图像的面积比。 ( ) 2. 直方图均衡是一种点运算,图像的二值化则是一种局部运算。 ( ) 3. 有选择保边缘平滑法可用于边缘增强。 ( ) 4. 共点直线群的 Hough 变换是一条正弦曲线。 ( ) 5. 边缘检测是将边缘像元标识出来的一种图像分割技术。
武 汉 大 学《 数 字 图 像 处 理 》试 卷
-Hale Waihona Puke 标准答案一、 单项选择题(从下列各题四个备选答案中选出一个正确答案,并将其代号填在 题前的括号内。答案选错或未作选择者,该题不得分。每小题 1 分,共 10 分) ( )1.一幅灰度级均匀分布的图象,其灰度范围在[0,255],则该图象的信息量为: a. 0 b.255 c.6 d.8 ( )2.图象与灰度直方图间的对应关系是: a.一一对应 b.多对一 c.一对多 d.都不对 ( )3.下列算法中属于局部处理的是: a.灰度线性变换 b.二值化 c.傅立叶变换 d.中值滤波 ( )4.下列算法中属于点处理的是: a.梯度锐化 b.二值化 c.傅立叶变换 d.中值滤波 ( ) 5.一曲线的方向链码为 12345,则曲线的长度为 a.5 b.4 c.5.83 d.6.24 ( )6. 下列算法中属于图象平滑处理的是: a.梯度锐化 b.直方图均衡 c. 中值滤波 placian 增强 ( )7.下列图象边缘检测算子中抗噪性能最好的是: a.梯度算子 b.Prewitt 算子 c.Roberts 算子 d. Laplacian 算子 ( )8.采用模板[-1 1]主要检测____方向的边缘。 a.水平 b.45° c.垂直 d.135° ( )9.二值图象中分支点的连接数为: a.0 b.1 c.2 d.3 ( )10.对一幅 100×100 像元的图象,若每像元用8bit 表示其灰度值,经霍夫曼编 码后压缩图象的数据量为 40000bit,则图象的压缩比为: a.2:1 b.3:1 c.4:1 d.1:2 二、 填空题(每空 1 分,共 15 分) 1.图像锐化除了在空间域进行外,也可在 进行。 2.图像处理中常用的两种邻域是 和 。 3.直方图修正法包括 和 两种方法。 4.常用的灰度内插法有 、 和 。 5.多年来建立了许多纹理分析法, 这些方法大体可分为 和结构分析法两大类。 6.低通滤波法是使 受到抑制而让 顺利通过,从而实现图像平 滑。 7.检测边缘的 Sobel 算子对应的模板形式为 和 。 8.一般来说,采样间距越大,图象数据量 ,质量 ;反之亦然。 三、名词解释(每小题 3 分,共 15 分) 1.数字图像 2.图像锐化 3.灰度共生矩阵

数字图像处理_期末考试及答案(三篇)

数字图像处理_期末考试及答案(三篇)

《数字图像处理》试卷答案(2009级)一、名词解释(每题4分,共20分)1.灰度直方图:灰度直方图(histogram)是灰度级的函数,它表示图象中具有每种灰度级的象素的个数,反映图象中每种灰度出现的频率。

它是多种空间域处理技术的基础。

直方图操作能够有效用于图像增强;提供有用的图像统计资料,其在软件中易于计算,适用于商用硬件设备。

灰度直方图性质:1)表征了图像的一维信息。

只反映图像中像素不同灰度值出现的次数(或频数)而未反映像素所在位置。

2)与图像之间的关系是多对一的映射关系。

一幅图像唯一确定出与之对应的直方图,但不同图像可能有相同的直方图。

3)子图直方图之和为整图的直方图。

2.线性移不变系统:一个系统,如果满足线性叠加原理,则称为线性系统,用数学语言可作如下描述:对于,若T[a+b]=aT[]+bT[]=a+b(2.15)则系统T[·]是线性的。

这里,、分别是系统输入,、分别是系统输出。

T[·]表示系统变换,描述了输入输出序列关系,反映出系统特征。

对T[·]加上不同的约束条件,可定义不同的系统。

一个系统,如果系统特征T[·]不受输入序列移位(序列到来的早晚)的影响,则系统称为移不变系统。

由于很多情况下序号对应于时间的顺序,这时也把“移不变”说成是“时不变”。

用数学式表示:对于y(n)= T[x(n)] 若y(n-)=T[x(n-)] (2.16)则系统是移不变的。

既满足线性,又满足移不变条件的系统是线性移不变系统。

这是一种最常用、也最容易理论分析的系统。

这里约定:此后如不加说明,所说的系统均指线性移不变/时不变系统,简称LSI/LTI系统。

3.图像分割:为后续工作有效进行而将图像划分为若干个有意义的区域的技术称为图像分割(Image Segmentation)而目前广为人们所接受的是通过集合所进行的定义:令集合R代表整个图像区域,对R的图像分割可以看做是将R分成N个满足以下条件的非空子集R1,R2,R3,…,RN;(1)在分割结果中,每个区域的像素有着相同的特性(2)在分割结果中,不同子区域具有不同的特性,并且它们没有公共特性(3)分割的所有子区域的并集就是原来的图像(4)各个子集是连通的区域4.数字图像处理:数字图像处理(Digital Image Processing)又称为计算机图像处理,它是指将图像信号转换成数字信号并利用计算机对其进行处理的过程。

数字图像处理期末试题参考答案

数字图像处理期末试题参考答案

1.用matlab进行图像变换,公式:s=L-1-r答:clear;clc;f=imread('source.jpg');%该图像是一幅灰度图像subplot(211);imshow(f);title('原始灰度图像');s=f;f=double(f);s=256-1-f;subplot(212);imshow(uint8(s),[]);title('变换后的图像')2.图1显示了512×512像素尺寸的黑色背景叠加一个20×20像素尺寸的白色矩形。

此图像在傅里叶变换的计算之前乘以(-1)x+y,从而可以使频率关于中心谱对称,用matlab对图1进行变换答:编程f=zeros(512,512);f(246:266,246:266)=1;F=fft2(f,512,512) ;F2=fftshift(F);imshow(log(abs(F2)),[-1 5]);colormap(jet);colorbar;-0.500.511.522.533.544.53.试给出把灰度范围[0,10]伸长为[0,15],把范围[10,20]伸长为[15,25],并把范围[20,30]压缩为[25,30]的变换方程。

答:由()[]c a y x f ab cd y x g +---=,)(),(得 (1)、3(,)(,)2g x y f x y ⎡⎤=*⎢⎥⎣⎦(2)、5),(),(+=y x f y x g (3)、15),(5.0),(+=y x f y x g4、设一幅图像具有表1所示的概率分布,对其分别进行直方图均衡化和规定化,要求规定化的图像具有表2所示的灰度级分布。

表1表2(1)、直方图均衡化处理结果如下。

数字图像处理习题(1)

数字图像处理习题(1)

一、判断题(10分)(正确√,错误×)1.图像处理就是对图像信息进行加工处理,以满足人的视觉心理和实际应用的要求(√)2.在MATLAB中,uint8是无符号8位整数(√)3.在MATLAB中,uint16是无符号16位整数(√)4.图像的点运算与代数运算不相同(√)5.点运算也叫灰度级变换(√)6.线性点运算可以改变数字图像的对比度(√)7.图像的几何变换也叫图像的点运算(×)8.图像的平滑操作实际上是邻域操作(√)9.傅立叶变换后的矩阵处在频域上(√)10.傅立叶变换后的矩阵处在空域上(×)11.傅立叶变换,人们可以在空域和频域中同时思考问题(√)12.像素深度是指存储每个像素所用的位数(√)13.图像经过变换后,图像的大部分能量都集中在中、高频段(×)14.图像经过变换后,图像的大部分能量都集中在低频段(√)15.直方图均衡化也是一种非线性点运算(√)16.仿射变换是空间变换(√)17.空间变换是频域变换(×)18.边缘检测是将边缘像元标识出来的一种图像分割技术(√)19.灰度直方图能反映一幅图像各灰度级像元占图像的面积比(√)20.直方图均衡是一种点运算,图像的二值化则是一种局部运算(×)21.双边滤波法可用于边缘增强(×)22.均值平滑滤波器可用于锐化图像边缘(×)23.拉普拉斯算子可用于图像的平滑处理(×)24.高频加强滤波器可以有效增强图像边缘和灰度平滑区的对比度(√)25.应用傅立叶变换的可分离性可以将图像的二维变换分解为行和列方向的一维变换(√)26.图像分割可以依据图像的灰度、颜色、纹理等特性来进行(√)27.图像增强有空域和变换域两类(√)28.加大、减小对比度分别会使图像发生亮处更亮,暗处更暗的直观变化(√)29.加大、减小亮度分别会使图像发生亮处更亮,暗处更暗的直观变化(×)30.二值图像就是只有黑白两个灰度级(√)31.一般来说,图像采样间距越大,图像数据量越大,质量越好;反之亦然(×)32.用Matlab开辟一个图像窗口的命令是imshow(×)33.图像尺寸为400*300是指图像的宽为400毫米,高为300毫米(×)34.一般而言,对于椒盐噪声,均值滤波的效果好于中值滤波(×)35.与高斯低通滤波器相比,理想低通滤波低通滤波器在图像处理过程中更容易出现振铃(rings)(√)二、填空题(20分,1分/空)1.一般来说,图像采样间距越小,图像数据量_____,质量_____;反之亦然(大,高)2.若采样4个数,大小分别为4.56 0.23 7.94 16.55。

数字图像处理期末试卷及答案

XXXX 学院2020-2021学年学期期末考试卷课程《数字图像处理》考试时间: 120 分钟班级姓名学号一.填空题(每空1分,共20分)1.________是指由外部轮廓线条构成的矢量图,即由计算机绘制的直线、圆、矩形、曲线、图表等。

2. 图像根据色彩分为:彩色图像、___________和___________。

3. 对一幅连续图像f(x,y)在二维空间上的离散化过程称为___________,离散化后的采样点称为___________。

4. 图像分辨率包括___________和___________两部分,它们分别由采样点数和灰度级来控制。

5.普通彩色图像中,一个像素需要24比特构成,R、G、B各占______个比特,可能的颜色数有______种。

6. RGB模型,也叫______、______、______模型,广泛用于彩色显示器,高质量彩色摄像机中。

7. 在HSI空间中,彩色图像包含色调、___________和___________三个分量。

8. ______________是一种线性的积分变换,常在将信号在时域(或空域)和频域之间变换时使用,在物理学和工程学中有许多应用。

9. 灰度变换是数字图像增强技术的一个重要的手段,目的是使图像的__________动态范围扩大,图像的__________扩大,图像更加清晰,特征越发明显。

10. 图像的退化由系统特性和__________两部分引起。

11. _____________是利用图像数据的冗余进行压缩,可完全恢复原始数据而不引起任何失真,压缩率受冗余度的理论限制。

12. _____________的目的是简化或改变图像的表示形式,使得图像更容易理解和分析。

二.选择题(每题2分,共20分)(请将答案填入下面表格中)1.________目的是改善图像质量,使图像更加符合人类的视觉效果,从而提高图像判读和识别效果的处理方法。

A.图像增强B.图像变换C.图像分割D.图像复原2.________是指当观察目标和背景时,会感到背景较暗的目标物较亮,而背景较亮的目标物则较暗。

数字图像处理期末大作业

数字图像处理期末大作业一、问题描述实现第十章中采用Hough变换来检测图像中圆的过程。

,通过包括平滑(把细节去除),边缘检测(得到轮廓)以及Hough变换得到的圆,并把结果叠加到原来的灰度图像上。

给出具体的过程,中间结果,最后结果,实现的代码,并写出报告。

二、图片的获取以及预处理针对老师提供的一副硬币图片,要求检测出其中的hough圆,并叠加到原图像上以便增强图像。

在检测hough圆之前,首先要对图像进行平滑处理,进行拉普拉斯变换,然后检测垂直方向,水平方向,+45度和-45度方向的边缘,将四个方向的边缘叠加起来,得到总的边缘,对该图像进行二值化,然后对得到的图像检测其hough圆,得到圆形边缘,将该图像叠加到原图像上,就实现了图像边缘增强的目的。

三、图像处理算法的基本原理以及处理结果本实验流程图如下:1.读取图像图像处理的第一步就是对所采集的图像进行读入,本次实验的输入图像是一幅灰度图像,不需要将图像转换成为灰度图像,直接利用函数imread ()完成。

原图像如下所示:原图像2.图像预处理在图像预处理中,我们完成了两步工作,首先使用方差为1的高斯噪声对图像进行平滑,然后进行拉普拉斯变换,即)],(*)([2y x f r h ∇,222r 2e 21)(σσ-=πr h 为方差为2σ的高斯噪声,本实验中12=σ。

又),(*)]([)],(*)([22y x f r h y x f r h ∇=∇,其中2224222]2[)(σσσr er r h --=∇,将)(2r h ∇和),(y x f 分别进行傅里叶别换,将其逐点相乘,再进行傅里叶反变换,就得到了预处理后的图像。

3.边缘检测对水平,垂直,+45度,-45度方向进行边缘检测,本实验中我们采用了Prewitt 梯度算子,它用于检测水平方向,垂直方向,+45度方向和-45度方向的掩膜分别如下:水平掩膜 垂直掩膜 +45度掩膜 -45度掩膜使用这四个掩膜分别对上一步得到的图像逐点进行处理,就可以得到四个方向的边缘了(本实验中边缘的一个像素都不处理),再将它们加起来,就得到了总的边缘,实验结果如下:水平边缘垂直边缘-45度边缘总的边缘如下图所示:4.二值化对上图得到的图像进行二值化,这里我采用的是循环方式确定图像全局阈值,即首先以图像的平均值作为阈值,将图像分成两部分,分别求两部分的平均值,新的阈值为这两个平均值的均值,重复上述过程,直到两次阈值之差小于特定的值时停止,并以最后一次得到的阈值对图像进行二值化,本实验中我要求两次阈值之差小于0.5时停止,最后得到的全局阈值为 -102.1332,二值化后的图像如下所示:二值化后的图像5.Hough变换检测圆形边界Hough 变换的原理就是利用图像全局特征将边缘像素连接起来组成区域封闭边界,它将图像空间转换到参数空间,在参数空间对点进行描述,达到检测图像边缘的目的。

中科大数字图像处理作业1

数字图像处理(中国科学技术大学)HOMEWORK#1编号:59SA16173027李南云[在此处键入文档的摘要。

摘要通常是对文档内容的简短总结。

在此处键入文档的摘要。

摘要通常是对文档内容的简短总结。

]SA16173027 李南云P1:a: The size of lena.tiff is 512x512 ;The size of mandril.tiff is 256x256.b: The values of pixels lena(29, 86) is 105;The values of pixels mandril(198, 201) is 158. c:d:P1代码如下:clear all;f = imread('C:\Users\Administrator\Desktop\images\lena.tiff'); figure(1);imshow(f);i = imread('C:\Users\Administrator\Desktop\images\mandril.tiff'); figure(2);imshow(i);s1 = size(f);s2 = size(i);v1 = f(30,87);v2 = i(199,202);p1 = f(103,:);p2 = i(:,69);figure(3);subplot(211);plot(p1);figure(3);subplot(212);plot(p2);n = 128;for j=1:nb(x,j)=i(x,j);f(x,j)=b(x,j);endendfigure(4);imshow(f);P2代码如下:clear all;a = imread('C:\Users\Administrator\Desktop\images\campusdrive.tif'); figure(1);subplot(231);imshow(a);a1 = double(a);b = floor(a1/8);b = b*8;b = uint8(b);subplot(232);imshow(b);c = floor(a1/16);c = c*16;c = uint8(c);subplot(233);imshow(c);d = floor(a1/32);d = d*32;d = uint8(d);subplot(234);e = floor(a1/64);e = e*64;e = uint8(e);subplot(235);imshow(e);f = floor(a1/168);f = f*168;f = uint8(f);subplot(236);imshow(f);4bit时已经出现伪轮廓,5bit基本可以保存图像质量。

数字图像处理_期末考试及答案(三篇)

《数字图像处理》试卷答案(2009级)一、名词解释(每题4分,共20分)1.灰度直方图:灰度直方图(histogram)是灰度级的函数,它表示图象中具有每种灰度级的象素的个数,反映图象中每种灰度出现的频率。

它是多种空间域处理技术的基础。

直方图操作能够有效用于图像增强;提供有用的图像统计资料,其在软件中易于计算,适用于商用硬件设备。

灰度直方图性质:1)表征了图像的一维信息。

只反映图像中像素不同灰度值出现的次数(或频数)而未反映像素所在位置。

2)与图像之间的关系是多对一的映射关系。

一幅图像唯一确定出与之对应的直方图,但不同图像可能有相同的直方图。

3)子图直方图之和为整图的直方图。

2.线性移不变系统:一个系统,如果满足线性叠加原理,则称为线性系统,用数学语言可作如下描述:对于,若T[a+b]=aT[]+bT[]=a+b(2.15)则系统T[·]是线性的。

这里,、分别是系统输入,、分别是系统输出。

T[·]表示系统变换,描述了输入输出序列关系,反映出系统特征。

对T[·]加上不同的约束条件,可定义不同的系统。

一个系统,如果系统特征T[·]不受输入序列移位(序列到来的早晚)的影响,则系统称为移不变系统。

由于很多情况下序号对应于时间的顺序,这时也把“移不变”说成是“时不变”。

用数学式表示:对于y(n)= T[x(n)] 若y(n-)=T[x(n-)] (2.16)则系统是移不变的。

既满足线性,又满足移不变条件的系统是线性移不变系统。

这是一种最常用、也最容易理论分析的系统。

这里约定:此后如不加说明,所说的系统均指线性移不变/时不变系统,简称LSI/LTI系统。

3.图像分割:为后续工作有效进行而将图像划分为若干个有意义的区域的技术称为图像分割(Image Segmentation)而目前广为人们所接受的是通过集合所进行的定义:令集合R代表整个图像区域,对R的图像分割可以看做是将R分成N个满足以下条件的非空子集R1,R2,R3,…,RN;(1)在分割结果中,每个区域的像素有着相同的特性(2)在分割结果中,不同子区域具有不同的特性,并且它们没有公共特性(3)分割的所有子区域的并集就是原来的图像(4)各个子集是连通的区域4.数字图像处理:数字图像处理(Digital Image Processing)又称为计算机图像处理,它是指将图像信号转换成数字信号并利用计算机对其进行处理的过程。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

上海电力学院实验报告实验课程名称:数字图像处理实验项目名称:实验7 细胞面积计算与个数统计班级: 2009073姓名:杨祯学号: 20092006一、实验目的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,如图:1、注意类名2、选择ID4、点击按钮3、双击COMMAND添加函数后的结果(2)点击Edit Code按钮后,在CCellCountView.cpp文件中便添加了OnCellcount ()函数,此时需要在该函数中添加实现代码,具体如下:void CCellCountView::OnCellcount(){CCellCountDoc* pDoc=GetDocument();if( pDoc->m_hDIB!=NULL ){Area(pDoc->m_hDIB);pDoc->UpdateAllViews( NULL );}}(3)在CCellCountView.h文件中添加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;在CCellCountView.cpp文件添加如下函数及代码://连通区域标记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<height-1;j++) // 每行{for(int i=1;i<wide-1;i++) // 每列{if(*(p_data+(height-j-1)*wide+i)==0)//若当前点为黑点{if(*(p_data+(height-j-1+1)*wide+i+1)==0)//右上把右上的标号值赋给该点,因为右上以检测过{*(p_temp+(height-j-1)*wide+i)=*(p_temp+(height-j-1+1)*wide+i+1);x_temp=*(p_temp+(height-j-1+1)*wide+i+1);//提取出右上的标志flag[x_temp]+=1;//对应的标号数加1,用于记录点数。

if(*(p_data+(height-j-1)*wide+i-1)==0&&*(p_temp+(height-j-1)*wide+i-1)!=x_t emp)//判断左前是那一个连通域的,//如果是一个连通域,就执行下一个,不是一个连通域,{y_temp=*(p_temp+(height-j-1)*wide+i-1);//则记录下这个连通与的值for(int m=1;m<=height-1;m++)for(int n=1;n<=wide-1;n++){if(*(p_temp+(height-m-1)*wide+n)==y_temp)//在整个区间找属于哪个连通域的把他们全部标记为右上的连通域{flag[y_temp]=0;*(p_temp+(height-m-1)*wide+n)=x_temp;flag[x_temp]+=1;//发现一个,把这个连通域中内容加1.}}}//end//左前if(*(p_data+(height-j-1+1)*wide+i-1)==0&&*(p_temp+(height-j-1+1)*wide+i-1)! =x_temp)//在判断左上,用相同的方法//把号全部的标记,由于对于右上来说只有这两个与他不连通,所以就只用两次判断。

{y_temp=*(p_temp+(height-j-1+1)*wide+i-1);for(int m=1;m<=height-1;m++)for(int n=1;n<=wide-1;n++){if(*(p_temp+(height-m-1)*wide+n)==y_temp){flag[y_temp]=0;*(p_temp+(height-m-1)*wide+n)=x_temp;flag[x_temp]+=1;}}}//end//左上}else if(*(p_data+(height-j-1+1)*wide+i)==0)//由于正上的判断往后走还要判断右边的所以这里不需要在做其他的检测。

{*(p_temp+(height-j-1)*wide+i)=*(p_temp+(height-j-1+1)*wide+i);x_temp=*(p_temp+(height-j-1+1)*wide+i);flag[x_temp]+=1;}else if(*(p_data+(height-j-1+1)*wide+i-1)==0)//由于正上的判断往后走还要判断右边的所以这里不需要在做其他的检测。

{*(p_temp+(height-j-1)*wide+i)=*(p_temp+(height-j-1+1)*wide+i-1);x_temp=*(p_temp+(height-j-1+1)*wide+i-1);flag[x_temp]+=1;}else if(*(p_data+(height-j-1)*wide+i-1)==0)//由于正上的判断往后走还要判断右边的所以这里不需要在做其他的检测。

{*(p_temp+(height-j-1)*wide+i)=*(p_temp+(height-j-1)*wide+i-1);x_temp=*(p_temp+(height-j-1)*wide+i-1);flag[x_temp]+=1;}else//没有{++x_sign;m_temp=x_sign;//一个标号结束了*(p_temp+(height-j-1)*wide+i)=m_temp;//把它赋给相应的这个像素flag[m_temp]=0;//把对应的标号为清空即可。

}}//end if}// 每列}//end 每行}//计算面积void CCellCountView::Area(HDIB hDIB){// 指向DIB的指针LPSTR lpDIB;// 指向DIB象素指针LPSTR lpDIBBits;// 锁定DIBlpDIB = (LPSTR) ::GlobalLock((HGLOBAL) hDIB);// 找到DIB图像象素起始位置lpDIBBits = FindDIBBits(lpDIB);// 判断是否是8-bpp位图if (DIBBitCount(lpDIB) != 8){// 提示用户MessageBox("请先将其转换为8位色位图,再进行处理!", "系统提示" , MB_ICONINFORMATION | MB_OK);// 解除锁定::GlobalUnlock((HGLOBAL) hDIB);// 返回return;}// 更改光标形状BeginWaitCursor();// DIB的宽度LONG lWidth = DIBWidth(lpDIB);// DIB的高度LONG lHeight = DIBHeight(lpDIB);Mark(lpDIBBits, lWidth,lHeight); //调用标记函数int i;memset(fg,0,255);//初始化赋值都为0int j=0;int CellCount=0;CellCount=0;for(i=1;i<=x_sign;i++)//从标号1到最后{if(flag[i]>70){if(flag[i]>2000){CellCount=CellCount+flag[i]/1000-1;}if(fg[j]==0){fg[j]=flag[i];//这里的fg[]中就是面积的值j++;}}}CResultDlg m_ResultDlg;m_ResultDlg.Count=(j-1)+CellCount;m_ResultDlg.AreaCount=j;for(i=0;i<j;i++){m_ResultDlg.Area[i]=fg[i];}m_ResultDlg.DoModal();}(4)编译、链接(F7)及运行(CTRL+F5),打开一BMP图像cell.bmp,运行统计个数与面积,观察显示。

四、实验结果(1)、打开灰度cell图像文件cell.bmp,对其进行自适应阈值分割,得到二值图像,再进行腐蚀和膨胀,进行孔洞填充,得到结果如下图:。

相关文档
最新文档