数字图像处理课程设计

合集下载

数字图像处理课程设计题目和要求模板

数字图像处理课程设计题目和要求模板

数字图像处理课程设计题目和要求模板数字图像处理课程设计题目和要求12020年4月19日文档仅供参考数字图像处理课程设计内容、要求题目一:图像处理软件1、设计内容及要求:(1)、独立设计方案,实现对图像的十五种以上处理(比如:底片化效果、灰度增强、图像复原、浮雕效果、木刻效果等等)。

(2)、参考photoshop软件,设计软件界面,对处理前后的图像以及直方图等进行对比显示;(3)、将实验结果与其它软件实现的效果进行比较、分析。

总结设计过程所遇到的问题。

2、参考方案(所有参考方案若无特殊说明,均以matlab为例说明):(1)实现图像处理的基本操作学习使用matlab图像处理工具箱,利用imread()语句读入图像,例如image=imread(flower.jpg),对图像进行显示(如imshow(image)),以及直方图计算和显示。

(2)图像处理算法的实现与显示12020年4月19日文档仅供参考针对课程中学习的图像处理内容,实现至少十五种图像处理功能,例如模糊、锐化、对比度增强、复原操作。

改变图像处理的参数,查看处理结果的变化。

自己设计要解决的问题,例如引入噪声,去噪;引入运动模糊、聚焦模糊等,对图像进行复原。

(3)参照“photoshop”软件,设计图像处理软件界面可设计菜单式界面,在功能较少的情况下,也能够设计按键式界面,视功能多少而定;参考matlab软件中GUI设计,学习软件界面的设计。

题目二:数字水印1、设计内容及要求:为保护数字图像作品的知识产权,采用数字水印技术嵌入水印图像于作品中,同时尽可能不影响作品的可用性,在作品版权发生争执时,经过提取水印信息确认作品版权。

一般情况下,水印图像大小要远小于载体图像,嵌入水印后的图像可能遇到噪声、有损压缩、滤波等方面的攻击。

因此,评价水印算法的原则就是水印的隐藏性和抗攻击性。

根据这一要求,设计水印算法。

(1)、查阅文献、了解数字水印的基本概念。

数字图像处理matlab课程设计

数字图像处理matlab课程设计

数字图像处理matlab课程设计一、课程目标知识目标:1. 理解数字图像处理的基本概念,掌握图像的表示和存储方式;2. 学会使用MATLAB软件进行数字图像处理,掌握相关函数和工具箱的使用方法;3. 掌握图像增强、滤波、边缘检测等基本图像处理技术;4. 了解图像分割、特征提取等高级图像处理技术。

技能目标:1. 能够运用MATLAB进行图像读取、显示和保存操作;2. 能够独立完成图像的增强、滤波等基本处理操作;3. 能够运用边缘检测算法对图像进行处理,提取关键特征;4. 能够根据实际需求选择合适的图像处理技术,解决实际问题。

情感态度价值观目标:1. 培养学生对数字图像处理技术的兴趣,激发其学习热情;2. 培养学生的团队合作意识,使其学会在团队中分享和交流;3. 培养学生严谨的科学态度,使其注重实验数据的真实性;4. 培养学生的创新思维,鼓励其探索新方法,提高解决问题的能力。

本课程旨在通过数字图像处理MATLAB课程设计,使学生在掌握基本理论知识的基础上,运用MATLAB软件进行图像处理实践。

课程注重理论与实践相结合,培养学生具备实际操作能力,并能运用所学知识解决实际问题。

针对学生的年级特点,课程目标既注重知识技能的传授,又关注情感态度价值观的培养,为学生今后的学习和工作奠定基础。

二、教学内容1. 数字图像处理基础- 图像表示与存储(RGB、灰度、二值图像)- 图像类型转换- MATLAB图像处理工具箱介绍2. 图像增强- 直方图均衡化- 伽玛校正- 图像锐化3. 图像滤波- 均值滤波- 中值滤波- 高斯滤波- 双边滤波4. 边缘检测- 索贝尔算子- 拉普拉斯算子- Canny边缘检测5. 图像分割- 阈值分割- 区域生长- 分水岭算法6. 特征提取与描述- 霍夫变换- SIFT算法- ORB算法教学内容根据课程目标进行选择和组织,注重科学性和系统性。

教学大纲明确分为六个部分,分别对应数字图像处理的基础知识、图像增强、滤波、边缘检测、图像分割和特征提取与描述。

数字图像处理的课程设计

数字图像处理的课程设计

数字图像处理的课程设计一、课程目标知识目标:1. 理解数字图像处理的基本概念,掌握图像的数字化表示方法;2. 掌握图像处理的基本操作,如图像变换、滤波、增强和复原;3. 了解常见的图像分割和特征提取方法,并应用于实际问题;4. 掌握图像压缩的基本原理及常用算法。

技能目标:1. 能够运用图像处理软件进行基本的图像编辑和操作;2. 能够编写简单的数字图像处理程序,实现对图像的基本处理功能;3. 能够运用所学的图像处理方法解决实际问题,如图像去噪、图像增强等;4. 能够对图像进行有效的压缩,以适应不同的应用场景。

情感态度价值观目标:1. 培养学生对数字图像处理技术的兴趣和热情,激发其探索精神;2. 培养学生的团队合作意识,学会与他人共同解决问题;3. 增强学生的实际操作能力,使其认识到理论与实践相结合的重要性;4. 引导学生关注图像处理技术在日常生活和各领域的应用,提高其科技素养。

课程性质:本课程为高年级选修课程,旨在使学生掌握数字图像处理的基本原理和方法,培养其实际应用能力。

学生特点:学生具备一定的数学基础和编程能力,对图像处理有一定了解,但尚未深入学习。

教学要求:结合学生特点和课程性质,注重理论与实践相结合,以实际应用为导向,提高学生的动手能力和创新能力。

通过本课程的学习,使学生能够达到上述课程目标,为未来进一步学习和研究打下坚实基础。

二、教学内容1. 数字图像基础:包括图像的数字化表示、图像质量评价、颜色模型等基本概念;- 教材章节:第1章 数字图像处理基础2. 图像增强:介绍直方图均衡化、图像平滑、锐化等增强方法;- 教材章节:第3章 图像增强3. 图像复原:涉及图像退化模型、逆滤波、维纳滤波等复原方法;- 教材章节:第4章 图像复原4. 图像分割与特征提取:包括阈值分割、边缘检测、区域生长等分割方法,以及特征点的提取和描述;- 教材章节:第5章 图像分割与特征提取5. 图像压缩:介绍图像压缩的基本原理,如JPEG、JPEG2000等压缩算法;- 教材章节:第6章 图像压缩6. 数字图像处理应用:分析图像处理在医学、遥感、计算机视觉等领域的应用案例;- 教材章节:第7章 数字图像处理应用教学进度安排:1. 数字图像基础(2学时)2. 图像增强(4学时)3. 图像复原(4学时)4. 图像分割与特征提取(6学时)5. 图像压缩(4学时)6. 数字图像处理应用(2学时)三、教学方法为提高教学效果,本课程将采用以下多样化的教学方法:1. 讲授法:教师通过系统的讲解,使学生掌握数字图像处理的基本概念、原理和方法。

《数字图像处理》实验教案

《数字图像处理》实验教案

《数字图像处理》实验教案一、实验目的1. 使学生了解和掌握数字图像处理的基本概念和基本算法。

2. 培养学生运用数字图像处理技术解决实际问题的能力。

3. 提高学生使用相关软件工具进行数字图像处理操作的技能。

二、实验内容1. 图像读取与显示:学习如何使用相关软件工具读取和显示数字图像。

2. 图像基本操作:学习图像的旋转、缩放、翻转等基本操作。

3. 图像滤波:学习使用不同类型的滤波器进行图像去噪和增强。

4. 图像分割:学习利用阈值分割、区域增长等方法对图像进行分割。

5. 图像特征提取:学习提取图像的边缘、角点等特征信息。

三、实验环境1. 操作系统:Windows或Linux。

2. 编程语言:Python或MATLAB。

3. 图像处理软件:OpenCV、ImageJ或MATLAB。

四、实验步骤1. 打开相关软件工具,导入图像。

2. 学习并实践图像的基本操作,如旋转、缩放、翻转等。

3. 学习并实践图像滤波算法,如均值滤波、中值滤波等。

4. 学习并实践图像分割算法,如全局阈值分割、局部阈值分割等。

5. 学习并实践图像特征提取算法,如Canny边缘检测算法等。

五、实验要求1. 每位学生需独立完成实验,并在实验报告中详细描述实验过程和结果。

2. 实验报告需包括实验目的、实验内容、实验步骤、实验结果和实验总结。

3. 实验结果要求清晰显示每个步骤的操作和效果。

4. 实验总结部分需对本次实验的学习内容进行归纳和总结,并提出改进意见。

六、实验注意事项1. 实验前请确保掌握相关软件工具的基本使用方法。

3. 在进行图像操作时,请尽量使用向量或数组进行处理,避免使用低效的循环结构。

4. 实验过程中如需保存中间结果,请使用合适的文件格式,如PNG、JPG等。

5. 请合理安排实验时间,确保实验报告的质量和按时提交。

七、实验评价1. 实验报告的评价:评价学生的实验报告内容是否完整、实验结果是否清晰、实验总结是否到位。

2. 实验操作的评价:评价学生在实验过程中对图像处理算法的理解和运用能力。

数字图像处理matlab课程设计

数字图像处理matlab课程设计

数字图像处理matlab课程设计一、教学目标本课程的教学目标是使学生掌握数字图像处理的基本理论和方法,学会使用MATLAB软件进行图像处理和分析。

通过本课程的学习,学生应达到以下具体目标:1.理解数字图像处理的基本概念、原理和算法。

2.熟悉MATLAB图像处理工具箱的使用。

3.能够运用数字图像处理的基本算法解决实际问题。

4.能够使用MATLAB进行图像处理和分析,撰写相关的程序代码。

情感态度价值观目标:1.培养学生的创新意识和团队协作精神。

2.培养学生对数字图像处理技术的兴趣,提高其综合素质。

二、教学内容根据课程目标,本课程的教学内容主要包括以下几个部分:1.数字图像处理基本概念:图像处理的基本概念、图像数字化、图像表示和图像变换。

2.图像增强和复原:图像增强、图像去噪、图像复原。

3.图像分割和描述:图像分割、图像特征提取和描述。

4.图像形态学:形态学基本运算、形态学滤波、形态学重建。

5.MATLAB图像处理工具箱的使用:MATLAB图像处理工具箱的基本功能、常用图像处理函数。

6.图像处理实例分析:结合实际案例,分析数字图像处理技术的应用。

三、教学方法为了实现课程目标,本课程将采用以下教学方法:1.讲授法:通过讲解图像处理的基本概念、原理和算法,使学生掌握图像处理的基本知识。

2.案例分析法:通过分析实际案例,使学生了解数字图像处理技术在实际中的应用。

3.实验法:通过上机实验,使学生熟练掌握MATLAB图像处理工具箱的使用,提高学生的实际操作能力。

4.讨论法:学生进行课堂讨论,激发学生的思维,培养学生的创新意识和团队协作精神。

四、教学资源为了支持教学内容和教学方法的实施,本课程将采用以下教学资源:1.教材:《数字图像处理(MATLAB版)》。

2.参考书:相关领域的经典教材和论文。

3.多媒体资料:教学PPT、视频教程等。

4.实验设备:计算机、MATLAB软件、图像处理相关硬件设备。

五、教学评估本课程的评估方式包括平时表现、作业、考试等多个方面,以全面、客观、公正地评价学生的学习成果。

《数字图像处理》实验教案

《数字图像处理》实验教案

《数字图像处理》实验教案一、实验目的与要求1. 实验目的(1) 理解数字图像处理的基本概念和原理;(2) 掌握常用的数字图像处理方法和技术;(3) 能够运用数字图像处理软件进行图像处理和分析。

2. 实验要求(1) 熟悉计算机操作和图像处理软件的使用;(2) 能够阅读和理解图像处理相关的文献资料;二、实验内容与步骤1. 实验内容(1) 图像读取与显示;(2) 图像的基本处理方法:灰度化、二值化、滤波;(3) 图像的增强与复原;(4) 图像的分割与描述;(5) 图像的压缩与编码。

2. 实验步骤(1) 打开图像处理软件,导入实验所需的图像;(2) 进行图像的基本处理,观察处理前后的效果;(3) 应用图像的增强与复原方法,改善图像的质量;(4) 使用图像的分割与描述技术,提取图像中的目标区域;(5) 对图像进行压缩与编码,观察压缩后的效果。

三、实验注意事项1. 实验前请确保已经安装了图像处理软件,并熟悉其基本操作;3. 在进行图像分割与描述时,请合理选择阈值和算法,确保目标区域的准确提取;四、实验报告要求1. 实验报告应包括实验目的、实验内容、实验步骤、实验结果和实验总结;2. 实验报告中应详细描述实验过程中遇到的问题及解决方法;3. 实验报告应有清晰的图像处理结果展示,并附上相关图像的处理参数和效果对比;五、实验评分标准1. 实验目的与要求(20分):是否达到实验目的,是否符合实验要求;2. 实验内容与步骤(30分):是否完成实验内容,是否遵循实验步骤;3. 实验注意事项(20分):是否注意实验注意事项,处理过程中是否出现错误;4. 实验报告要求(30分):报告结构是否完整,描述是否清晰,图像处理结果是否合理,总结是否到位。

评分总分:100分。

六、实验一:图像读取与显示1. 实验目的(1) 学习如何使用图像处理软件读取和显示图像。

2. 实验步骤(1) 打开图像处理软件。

(2) 导入实验所需的图像文件。

数字图像处理课程设计opencv

数字图像处理课程设计opencv

数字图像处理课程设计opencv一、教学目标本课程的教学目标是使学生掌握数字图像处理的基本理论、方法和OpenCV编程技能。

通过本课程的学习,学生应能理解数字图像处理的基本概念,掌握常用的图像处理算法,并能够运用OpenCV库进行实际的图像处理操作。

具体来说,知识目标包括:1.理解数字图像处理的基本概念和原理。

2.掌握数字图像处理的基本算法和常用技术。

3.熟悉OpenCV库的基本结构和功能。

技能目标包括:1.能够运用OpenCV库进行数字图像处理的基本操作。

2.能够编写简单的数字图像处理程序。

3.能够分析和解决数字图像处理实际问题。

情感态度价值观目标包括:1.培养对数字图像处理的兴趣和热情。

2.培养学生的创新意识和实践能力。

3.培养学生的团队合作精神和沟通交流能力。

二、教学内容本课程的教学内容主要包括数字图像处理的基本理论、方法和OpenCV编程实践。

教学大纲如下:1.数字图像处理概述1.1 数字图像处理的基本概念1.2 数字图像处理的应用领域2.图像处理基本算法2.1 图像滤波2.2 图像增强2.3 图像边缘检测3.OpenCV库的使用3.1 OpenCV库的基本结构3.2 OpenCV库的基本功能4.图像处理实例分析4.1 图像去噪实例4.2 图像增强实例4.3 图像边缘检测实例三、教学方法本课程采用多种教学方法相结合的方式,包括讲授法、讨论法、案例分析法和实验法等。

1.讲授法:通过教师的讲解,使学生掌握数字图像处理的基本理论和方法。

2.讨论法:通过小组讨论,激发学生的思考,培养学生的创新意识和实践能力。

3.案例分析法:通过分析实际案例,使学生能够将理论知识应用于实际问题。

4.实验法:通过实验操作,使学生掌握OpenCV库的基本功能,并能够编写实际的图像处理程序。

四、教学资源本课程的教学资源包括教材、参考书、多媒体资料和实验设备等。

1.教材:选用《数字图像处理》(李航著)作为主要教材,辅助以相关参考书籍。

数字图像处理课程设计

数字图像处理课程设计

数字图像处理课程设计一、课程目标知识目标:1. 学生能够理解数字图像处理的基本概念,掌握图像的数字化过程、图像格式和颜色空间等基础知识;2. 学生能够掌握图像处理的基本操作,如图像的读取、显示、保存和变换;3. 学生能够了解并运用图像滤波、边缘检测、图像分割等常用算法;4. 学生能够理解图像特征提取和描述的基本方法,并应用于图像识别和分类。

技能目标:1. 学生能够运用编程语言(如Python)和相关库(如OpenCV)进行数字图像处理实践操作;2. 学生能够运用图像处理技术解决实际问题,如图像增强、图像复原和图像分析;3. 学生能够通过实际案例,掌握图像处理算法的选择和优化方法;4. 学生能够运用所学知识,开展小组合作,共同完成图像处理项目。

情感态度价值观目标:1. 学生培养对数字图像处理技术的兴趣和热情,增强学习动力;2. 学生树立正确的图像处理观念,遵循学术道德,不侵犯他人隐私;3. 学生培养团队协作精神,学会与他人分享和交流,提高沟通能力;4. 学生能够认识到数字图像处理技术在日常生活和各行各业中的应用价值,激发创新意识。

课程性质:本课程为实践性较强的学科,注重理论知识与实际应用的结合。

学生特点:高中年级学生,具备一定的数学和编程基础,对图像处理技术有一定了解,好奇心强,喜欢动手实践。

教学要求:教师应注重启发式教学,引导学生主动探究,培养学生的实践能力和创新精神。

教学过程中,关注学生的个体差异,提供个性化指导,确保课程目标的达成。

同时,注重过程性评价,全面评估学生的学习成果。

二、教学内容1. 数字图像处理基础- 图像的数字化过程- 常见图像格式及颜色空间- 图像的读取、显示和保存2. 图像处理基本操作- 图像变换(几何变换、灰度变换)- 图像增强(直方图均衡化、空间滤波)- 图像复原(逆滤波、维纳滤波)3. 图像滤波与边缘检测- 常用滤波算法(均值滤波、中值滤波、高斯滤波)- 边缘检测算法(Sobel算子、Canny算子)4. 图像分割- 阈值分割(全局阈值、局部阈值)- 区域分割(区域生长、分裂合并)5. 图像特征提取与描述- 基本特征(颜色特征、纹理特征、形状特征)- 特征描述(HOG描述子、SIFT描述子)6. 图像识别与分类- 基本分类算法(K最近邻、支持向量机)- 深度学习方法(卷积神经网络)7. 实践项目- 图像增强与复原- 边缘检测与图像分割- 特征提取与图像分类教学内容安排与进度:1. 第1-2周:数字图像处理基础2. 第3-4周:图像处理基本操作3. 第5-6周:图像滤波与边缘检测4. 第7-8周:图像分割5. 第9-10周:图像特征提取与描述6. 第11-12周:图像识别与分类7. 第13-14周:实践项目教材关联:教学内容与教材章节紧密关联,涵盖《数字图像处理》教材中的基础知识和实践应用。

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

数字图像处理课程设计报告目录一.实验目的 (3)二.实验内容............ ................... . (3)1.打开图像 (3)(1)、图像信息获取 (3)(2). RgbtoHsi(&rgb, &Hsi) (4)(3).OnMouseMove(UINT nFlags, CPoint point) (4)2.标记Mark点 (5)(1)标记可能的点 (5)(2)把可能标记的点变为标记点 (5)(3) EdgeIformation边缘标记 (6)(4)EdgeFilter边缘滤波 (6)3.二值化 (7)4.填洞 (8)5收缩 (10)6获取中心点 (11)三.学习心得1.错误总结 (16)2.心得体会 (17)一.实验目的:对血液细胞切片图片进行各种处理,最终得出细胞的数目、半径等信息基于vc的红细胞识别统计系统设计它主要以病人的血液样本为原始数据。

经过一系列的图像处理和分析,识别出血液中的红细胞,并能给出红细胞的个数。

而得到红细胞的个数以后,通过血液量的检测,就可以得出血液中红细胞的密度。

该系统可以很方便的利用在临床上,大大提高速度和效率。

二、实验内容基于VC++6.0软件下的细胞识别,通过细胞的标记、二值化、提取边缘、填洞、收缩、找中心点、计数等过程完成实验目的1 . 打开图像(1)图像信息获取该步骤实现的功能是打开bmp格式的图像文件,要对图像进行操作,系统必须能调用图像。

打开bmp图像的具体步骤为1.新建项目:--MFC AppWizard、工程名2.拷贝cdib.h,cdib.cpp到工程文件夹,再向工程里添加3.~Doc.h添加变量:m_pDib4.~doc.cpp:变量(m_pDib):new、delete5.~doc.cpp: Serialize()6.~View.cpp: OnDraw() m_pDib->Draw()2.RgbtoHsi(&rgb, &Hsi)RGB 向HSI 模型的转换是由一个基于笛卡尔直角坐标系的单位立方体向基于圆柱极坐标的双锥体的转换。

基本要求是将RGB 中的亮度因素分离,将色度分解为色调和饱和度,并用角向量表示色调。

如果直接对R 、G 、B 处理,其处理过程中很可能会引起三个量不同程度的变化,这样就会产生色差问题,甚至带来颜色上的失真。

HSI 模型的出现,使得在保持色彩无失真的情况下实现图像处理成为可能。

HSI 可以更好地区分细胞与非细胞,实现程序如,3. OnMouseMove(UINT nFlags, CPoint point) 当鼠标移动时调用此函数 。

point :鼠标的X,Y 坐标:该坐标为 鼠标距离截获该消息的窗口左上角的位置 是一个相对位置而不是在屏幕像素上的绝对位置。

在OnMouseMove函数里调用RgbtoHsi(&rgb, &Hsi)函数,可以在屏幕上显示鼠标所指点的坐标以及RGB、HSI和灰度值,通过HSI的可以选取合适的阈值来找到细胞以及边界。

2.标记Mark点(1)标记可能的点Mark点指的是我们要寻找的细胞内的点。

通过计算色调的平均值设置一个门限值,将色调与平均值差距在门限范围内的点设置为Mark点,同理通过计算色调的平均值设置一个MaybeMark的门限,将色调与平均值差距在门限范围内的点设置为MaybeMark点。

(2)把可能标记的点变为标记点;。

这一步是把可能的Mark点变成Mark点,因为在拍摄图片时由于光线等原因是本来的Mark点变暗,在进行Mark处理时被标记为Maybe Mark,所以需要把可能的Mark点还原Mark点。

mayMark变成Mark的思想是看mayMark周围有没有Mark点,若有,则变为Mark点。

一直做到一次遍历没有mayMark点变为Mark点。

(3)、EdgeIformation和EdgeFilterEdgeIformation是把边缘标记出来,方便后面的图像处理。

EdgeFilter是将提取出来的边缘进行滤波,即删除细胞内部不应该存在的小边缘。

提取边缘的过程是先开辟一块内存用于存放数据,通过设置的门限值来找到边缘点,在提取边缘时用到重要的sobel算子,sobel算子主要用作边缘检测。

在技术上,它是一离散性差分算子,用来运算图像亮度函数的梯度之近似值。

在图像的任何一点使用此算子,将会产生对应的梯度矢量或是其法矢量。

该算子包含两组3x3的矩阵,分别为横向及纵向,将之与图像作平面卷积,即可分别得出横向及纵向的亮度差分近似值。

EdgeFilter是在边缘点上取个边长为M的矩形,在矩形上遍历一遍,若没碰到Mark点和边缘点,则删除该边缘。

实现是Mark点,,边界(edge)的标记,MayBeMark To Mark--RGB(128,0,0),将细胞、可能是细胞的区域、不可能是细胞的区域、细胞边界分别用红色、暗红、蓝色和绿色标记3、二值化从多值的数字图像中直接提取出目标物体,最常用的方法就是设定一个阈值T,用T将图像的数据分成两部分:大于T的像素群和小于T的像素群。

这是研究灰度变换的最特殊的方法,称为图像的二值化。

二值化后更加有利于做图像处理判别。

将一副彩色图像二值化,首先要申请的8位数据缓存空间,用于存放处理后的数据,为了充分利用这8位的内存,将这8位分别用于不同的标志位,如最高位为是否为Mark标志位,接下来的三位为边缘标志位,最后一位为访问标志位等,实现程序如下,4、填洞孔洞填充的原理如下:在阈值处理时,如果像素在阈值范围内,则像素将被标志。

孔洞填充将先统计所有连通的非标志区域面积,总会有一个或者几个面积特别大的区域,其它的都是面积相对较小的区域。

较小或者很小的往往就是系统所要填充的孔洞了。

从一个为访问过的非MARK点开始,从该点开始向四周扩散找未被访问过的非MARK点。

将找到的符合条件的点同时压如堆栈和队列中。

之所以要同时在堆栈和队列中同时保存相同的点是因为堆栈中的点并没有保存,每次循环都会弹出一个点作为新的种子进行扩散,当堆栈中的数据全部弹出之后,即表示搜索到了洞内的所有点,而队列中则保存了洞内的所有点。

因此通过判断队列的大小可以知道洞的大小从而判断是否进行填充。

填充就是经洞内的非MARK点变换为MARK点在此函数中调用了一个函数ProcessFillHoles(j,i);这个函数的功能是实现填洞。

通过OnFillHoles()调用。

5、收缩扫描图像,对图像进行预先的3次腐蚀,判断所生成边界点,然后根据原理判定是否标注该点,存放所标志的中心点,便于统计细胞个数及计算细胞半径。

先去掉边缘点,然后将剩下的Mark点生成边缘点,再去掉在生成,直到去掉三次边缘,就这样收缩,如果收缩过程中有些Mark点收缩到很小,可以认为那不是细胞,那就可以直接去掉。

函数中调用了两个函数GenEdge8();和GenEdge4();这两个函数的功能分别为获得八方向的边界和获得四方向的边界。

6、获取中心点根据前面所作工作统计获得的中心点个数,去掉一系列不符合要求的点得出最终的细胞个数、细胞的平均半径和平均面积,用对话框输出统计结果中心点的获取就是通过不断地进行收缩直到最后一次收缩后会导致中心点消失时停止。

收缩算法的思想就是在识别出细胞和其边界的基础上,首先进行一次遍历将所有已标记为边界的点变为非MARK点,然后再通过genEdge()、genEdge4()从八方向和四方向进行交替生成边界。

生成边界的思想很简单,就是通过判断MARK点上下左右四个方向或者八个方向是否有非Mark点,如果有的话即认为是边界,将该点加上边界标志。

而中心点的获取就是在每一次的收缩之前先进性一次判断,如果该点是孤立点或者是全边界点则将该点保存起来。

因为对于孤立点和全边界点如果不进行保存的话在进行一次收缩之后该点就会消失,因此为了保存该点,就要在其消失前将其保存。

因此第一次获取的中心点个数会是真正中心点个数的三倍左右。

细胞半径大小的获取是通过判断该中心点是通过多少次收缩之后获得的近似等于细胞的半径。

<2>编写计数函数OnCount()说明:函数的功能是统计细胞的信息,包括细胞的个数,半径,平均面积等信息。

代码实现如下:函数体内调用了OnReload();函数。

此函数的功能为重新加载图像Blood。

便于人机交互。

<3>.对获取的细胞数据做进一步的处理,在这一步首先建立三个队列,用于储存每次处理后细胞的信息,即坐标半径。

第一步,取邻域(相连)中心点合并后,获得中心点数目368;第二步,相近的(不相连)中心点的处理(取半径大的),获得中心点数目219;第三步,去掉潜在的错误(圆r<9),获得中心点数目209;第四步,去掉潜在的错误(同两个圆相交,并且不相交的部分是噪声)即两个圆相交,相交部分过大,该圆不存在,获得中心点数目208。

第一步第二步第三四步三、学习心得一.错误总结:1..在填洞这步中,将EDGEPOINT定义为0xf0,结果出现黑屏,在和同学的讨论中发现的的问题2.同时运用到的函数有些没调用,需要自己添加#include <math.h> #include "MainFrm.h"#include <stack>#include <vector>等3.需要自己定义的参量,有些是在函数中的,只需要在函数中定义即可,若是全局变量可在最开始public里定义或在用到变量的函数中定义,4.编译没有出错但是连接运行时出错,之前运行时却没错,是因为之前运行过的窗口没关闭二.心得体会通过将近两个星期的学习使我对Vc++6.0的功能有了进一步的理解,对MFC(Microsoft Foundation Classes)有了初步的认识;亲身体验了一个实用程序开发的全过程。

对MFC和VC 6.0有了基本的了解。

同时也是程序编写细节上的注意。

这次课程设计有了老师给的参考资料与讲解,实验容易很多,虽然还是有很多问题需要自己查找和改错。

有些问题自己找不出来,但是通过同学的帮助与老师的指导,问题基本上都有解决。

出现最多的就是从PPT所写的程序有很多的参量都没有定义,这些都是会出错的,刚开始不知道是什么错误,但遇到的多了自己也知道是什么原因,自己也可以改正过来了。

经过这些天的努力,终于完成了这份课程设计任务。

当正真完成程序的时候感觉并不是很难,难是因为我们不懂程序的含义与思路,当明白这些时就不难了,剩下的就是自己编写程序的能力了。

希望自己以后可以掌握编写程序的能力,与思路的培养。

相关文档
最新文档