数字图像处理课程设计

  • 格式:docx
  • 大小:2.94 MB
  • 文档页数:16

下载文档原格式

  / 16
  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_pDib

4.~doc.cpp:变量(m_pDib):new、delete

5.~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和EdgeFilter

EdgeIformation是把边缘标记出来,方便后面的图像处理。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、填洞