当前位置: 首页 > news >正文

C/C++实现显微镜玻片球状细胞识别与计数

显微镜玻片球状细胞识别与计数

灰度化

在RGB彩色空间中,衣服彩色数字图像中各个像素的信息由RGB三原色信息构成,其中R(红)、G(绿)、B(蓝)是由不同的灰度级来描述的,三者共同决定了像素的亮度和色彩。很多时候一副彩色图像无法直接进行处理,需先将彩色图像转换为灰度图像处理。灰度图像是指每个像素的信息由一个量化的灰度级来描述的图像,只有亮度信息,没有颜色信息。

G r a y   =   R ∗ 0.299   +   G ∗ 0.587   +   B ∗ 0.114 Gray\ = \ R*0.299\ + \ G*0.587\ + \ B*0.114 Gray = R0.299 + G0.587 + B0.114

在这里插入图片描述
图一 灰度图像

二值化

二值图像只有黑、白两种颜色,图像的每个像素只能是黑或者白,没有中间的过渡。其中,二值图像的像素值只能为0和1,分别代表黑色和白色,图像中的每个像素值用1位即可存储。通过判断灰度值大于或小于灰度阈值,将像素灰度值转为0或1。

在这里插入图片描述
图二 二值图像

中值滤波

滤波的概念来源于频域对信号进行处理,将某个频率分量滤除的意思。空间域滤波直接基于空间域,采用掩膜处理方法(模板也常被称为滤波器、滤波模板、核、模板或窗口)对图像进行滤波,以去除图像噪声或增强图像的细节。

中值滤波也是基于空间域操作的,用一个 m ∗ n m*n mn滤波器的中心点滑过一副图像的机理,基于设计滤波器包围的领域内像素的中间值代替当前像素点的灰度值。

在这里插入图片描述
图三 中值滤波

在这里插入图片描述
图四 中值滤波效果

霍夫圆变换

霍夫变换在1959年被发明,1962年PaulHough获得了美国专利,专利的有效期通常为20年,自申请日起计算至今早已超过20年的保护期限,该技术已进入公共领域,任何人都可以自由使用。

霍夫圆变换的原理是将在笛卡尔坐标系当中的圆方程转换到圆心 ( a , b ) (a,b) (a,b)和半径 r r r表示的三维坐标系中的一个点对应笛卡尔坐标系的一个圆。

( x − a ) 2 + ( y − b ) 2 = r 2 {(x - a)}^{2} + {(y - b)}^{2} = r^{2} (xa)2+(yb)2=r2

x = a + r c o s ( θ ) x = a + rcos(\theta) x=a+rcos(θ)

y = b + r s i n ( θ ) y = b + rsin(\theta) y=b+rsin(θ)

a = x − r c o s ( θ ) a = x - rcos(\theta) a=xrcos(θ)

b = y − r s i n ( θ ) b = y - rsin(\theta) b=yrsin(θ)

那么,圆上的所有点一定相交于一个点。假设半径 r r r已知,那么可以将三维坐标系换到对应半径 r r r a b ab ab平面。

如图五所示圆对应的方程式:

1 = ( x − 2 ) 2 + ( y − 2 ) 2 1 = {(x - 2)}^{2} + {(y - 2)}^{2} 1=(x2)2+(y2)2

在这里插入图片描述
图五 笛卡尔坐标系圆上3点

取图五中圆上三点 A ( 2 , 3 ) , B ( 1 + 2 − 2 2 , 1 + 2 − 2 2 ) , C ( 2 + 2 − 2 2 , 1 + 2 − 2 2 ) A(2,3),B\left( 1 + \frac{2 - \sqrt{2}}{2},1 + \frac{2 - \sqrt{2}}{2} \right),C\left( 2 + \frac{2 - \sqrt{2}}{2},1 + \frac{2 - \sqrt{2}}{2} \right) A(2,3),B(1+222 ,1+222 ),C(2+222 ,1+222 ),按照上述公式在 a b ab ab平面绘制对应的图形。由图六可知,对应的三个圆之间有一个交点,此交点就是图五当中对应的圆在 a b r abr abr坐标系当中的表达。此外,霍夫变换还能用于更常见的图像中直线的识别,以及椭圆等图形的识别。

在这里插入图片描述
图六 笛卡尔坐标系圆上3点对应的 a b ab ab平面圆交点

在这里插入图片描述
图七 霍夫圆变换

细胞计数

经过霍夫圆变换识别出图像当中可能是圆形的图形后,可以额外的统计圆形当中的二值像素0(黑色)的个数是否大于总像素个数的80%,来判断是否是真实的"圆细胞"。最终统计所有圆的个数,并将经过叠加圆边缘高亮的数据和OSD拷贝到另一张图片当中,效果如图八所示,图中共64个较完整的细胞。

在这里插入图片描述
图八 OSD叠加细胞数量

相关文章:

  • 计算机组成原理(第三章 存储系统)
  • 【自学笔记】R语言基础知识点总览-持续更新
  • 爬虫案例六用协程爬取趣笔阁
  • 13.【线性代数】——复习课
  • MyBatis增删改查:静态与动态SQL语句拼接及SQL注入问题解析
  • 如何选择开源向量数据库
  • XPath 语法无法定位到 svg 标签
  • Vue源码解析之mustache模板引擎
  • nodejs express设置允许跨域示例
  • C#运算符详解
  • 【免费】2013-2019年上市公司知识产权数据
  • 【架构艺术】Go语言微服务monorepo的代码架构设计
  • C、C++读取空格、回车符函数【getline、cin.get、cin.getline、std::noskipws】
  • 仿muduo库实现高并发服务器-面试常见问题
  • C#核心(22)string
  • 从0开始完成基于异步服务器的boost搜索引擎
  • 可重构智能表面(RIS)的全面介绍
  • 渐进稀疏注意力PSA详解及代码复现
  • KMP 算法的 C 语言实现
  • ROS2-话题学习
  • 建网站哪家好新闻/百度保障客服电话
  • 游戏网站推广/建站公司哪个好
  • 在线代理入口/杭州百家号优化
  • 关于网站建设相关文章/网站模板下载
  • 南京浦口做网站点/平台接广告在哪里接的
  • 黄山网站优化/全球新闻最新消息