尝试着做一个工程日记,也想把自己从项目中所学到的知识经验记录下来。而且网上的资源繁多复杂,方法也是各式各样,难免让人眼花缭乱,整理以下思路,供大家参考。
在研究很多篇文献后,我选用了一篇硕士论文中的研究思路,来进行实现。
这篇文献中提到,要对宫颈癌细胞图像进行分割,首先要提取细胞前景图像,从细胞前景中用标记分水岭算法提取细胞核,根据一个区域内细胞核的个数判断其是否是重叠细胞,如果不是,算法结束;如果是重叠的细胞,再分离重叠细胞的细胞质,直到分割结果是单个细胞为止,
提取细胞前景图像的步骤如下:

***step 1***灰度处理

灰度化顾名思义,就是将彩色的图像转化成灰度图像的过程。而对图像进行灰度化有如下几种方法:

  • 分量法:
    将彩色图像中的三分量的亮度作为三个灰度图像的灰度值,可根据应用需要选取一种灰度图像。
    f1(i,j)=R(i,j) f2(i,j)=G(i,j) f3(i,j)=B(i,j)
    其中fk(i,j)(k=1,2,3)为转换后的灰度图像在(i,j)处的灰度值。
  • 最大值法
    将彩色图像中的三分量亮度的最大值作为灰度图的灰度值。
  • 平均值法
    将彩色图像中的三分量亮度求平均得到一个灰度值。
  • 加权平均法
    根据重要性及其它指标,将三个分量以不同的权值进行加权平均。由于人眼对绿色的敏感最高,对蓝色敏感最低,因此,按下式对RGB三分量进行加权平均能得到较合理的灰度图像。
    f(i,j)=0.30R(i,j)+0.59G(i,j)+0.11B(i,j)
    MATLAB中的rgb2gray函数可以实现灰度化处理的功能,采用的是加权平均法。
    在此引用图像灰度化的三种常见方法源码
  function f=MyGrayProcessing(Img)[m,n,a]=size(Img);
%     Img1_Gray=zeros(m,n);
%     Img2_Gray=zeros(m,n);Img3_Gray=zeros(m,n);
%   Img4_Gray=zeros(m,n);for x=1:mfor y=1:n
%             Img1_Gray(x,y)=(Img(x,y,1)+Img(x,y,2)+Img(x,y,3))/3;%平均值法
%             Img2_Gray(x,y)=max(Img(x,y,1),max(Img(x,y,2),Img(x,y,3)));  %最大值法 Img3_Gray(x,y)=0.3*Img(x,y,1)+0.59*Img(x,y,2)+0.11*Img(x,y,3);%加权平均值法
%           Img4.1_Gray(x,y)=Img(x,y,1) %分量法,R通道
%           Img4.2_Gray(x,y)=Img(x,y,2) %分量法,G通道
%           Img4.3_Gray(x,y)=Img(x,y,3) %分量法,B通道endend
%     figure,imshow(Img);title('原图像')
%     figure,imshow(uint8(Img1_Gray));title('平均值法灰度化图像')
%     figure,imshow(uint8(Img2_Gray));title('最大值法灰度化图像')
%  figure,imshow(uint8(Img4.1_Gray));title('分量法R通道灰度化图像')
%   figure,imshow(uint8(Img4.2_Gray));title('分量法G通道灰度化图像')
%   figure,imshow(uint8(Img4.3_Gray));title('分量法B通道灰度化图像') f=uint8(Img3_Gray);figure,imshow(f);title('加权平均值法灰度化图像')

***step 2***计算直方图

图像直方图由于其计算代价较小,且具有图像平移、旋转、缩放不变性等众多优点,广泛地应用于图像处理的各个领域,特别是灰度图像的阈值分割、基于颜色的图像检索以及图像分类。
用MATLAB的自带函数就能直接实现。

x=imread('1.3.bmp');
y=rgb2gray(x);
hist_image=imhist(y);
figure(4)
plot(hist_image),xlim([0,256]),title('MATLAB自带函数')

*** step 3 ***高斯平滑直方图

因为细胞灰度直方图是呈锯齿状的,存在很多极小值点和毛刺噪声,这些锯齿极小值点成为我们找谷底的干扰。因此,需要采用高斯模板对直方图像做卷积操作进行平滑。
MATLAB中的fspecial函数能够实现高斯滤波,具体用法如下:

H = fspecial(‘gaussian’,hsize,sigma) ;
当type = ‘gaussian’时就是高斯滤波器了,size指定滤波器的大小,默认值是3×3,sigma指定滤波器的标准差,默认值是0.5。

具体代码如下:

x=imread('5.2.bmp');
y=rgb2gray(x);%灰度处理
h= fspecial('gaussian',3*3,0.5);
filteredRGB=imfilter(y,h);
z=imhist(filteredRGB);%直方图
figure(1)
plot(z),xlim([0,256]),title('MATLAB自带函数')%直方图显示

结果显示确实能消除毛刺。

*** step 4 *** 归一化直方图

一般情况下,会对直方图进行归一化处理,使其值在[0,1.0]区间内,方便后续处理。

x=imread('5.2.bmp');
y=rgb2gray(x);%灰度处理
h= fspecial('gaussian',3*3,0.5);
filteredRGB=imfilter(y,h);
[cnts,x1]=imhist(filteredRGB,32);%直方图
[m,n]=size(x);
prob=cnts/m/n;
plot(x1,prob),xlim([0,256]),title('MATLAB自带函数')%归一化直方图显示

结果显示:

今天的项目就到这里吧,感觉虽然看起来很简单,背后的运算却是极其复杂的,还是得小心谨慎。
大创好难,想cry。

#大创学习笔记#part1宫颈癌细胞图像分割——直方图最亮谷底阈值确定法提取细胞前景相关推荐

  1. #大创学习笔记#part1宫颈癌细胞图像分割——直方图最亮谷底阈值确定法提取细胞前景(2)

    今天终于开学了,也意味着我终于能够静下心去做大创的项目,汲取新的知识. 数字图像处理作为专业选修课,学分重,任务多.但是我也从中了解到了更多关于图像处理的知识,内心也充满激动,哈哈哈,怕是上课的时候在 ...

  2. #大创学习笔记#part1宫颈癌细胞图像分割——直方图最亮谷底阈值确定法提取细胞前景(3)

    收个尾巴~上次已经能确定分割的阈值了,只要把小于这个阈值的灰度级设为255,大于这个阈值的灰度级设为0,就能观察到结果啦. 在此之前,还要对结果进行一定的改进.我将图像分为三个通道,R通道,G通道,B ...

  3. 游戏黑客圣经GHB1学习笔记 part1(1-5)

    游戏黑客圣经(Game Hacking Bible1) 我在这里记录我所有课程的学习笔记,包括一些小技巧以及源码,俗话说好记性不如烂笔头,写在这里,用于温故而知新. 前言 学习游戏黑客的必备条件 智力 ...

  4. 计算机网络学习笔记Part1

    计算机网络学习笔记Part1 1. 概念 计算机网络:是一个将分散的.具有独立功能的计算机系统,通过通信设备与线路连接起来,由功能完善的软件实现资源共享和信息传递的系统. 2.功能 1.数据通信.2. ...

  5. matplotlib学习笔记 - 散点图、条形图和直方图

    Matplotlib 学习笔记 - 散点图.条形图和直方图 散点图 from matplotlib import pyplot as plt from matplotlib import font_m ...

  6. Kinect开发学习笔记之(六)带游戏者ID的深度数据的提取

    Kinect开发学习笔记之(六)带游戏者ID的深度数据的提取 zouxy09@qq.com http://blog.csdn.net/zouxy09 我的Kinect开发平台是: Win7x86 + ...

  7. 尚医通项目学习笔记Part1

    尚医通项目学习笔记 前言 一.目前学习进度 二.学习记录 1.项目简介 1.1 项目所会用到的技术栈 1.2 业务流程 2.项目学习笔记 2.1MyBatis-Plus相关 2.2搭建项目框架 2.3 ...

  8. 《统计学:从数据到结论》学习笔记(part1)--统计学是收集、分析、展示和解释数据的科学

    学习笔记 学习书籍:<统计学:从数据到结论>-吴喜之: 参考书目:<统计学>-贾俊平 一些统计学的基本概念 啥是统计学? 按照不列颠百科全书关于统计学的定义,统计学是" ...

  9. [学习笔记]高斯消元求解两种特殊问题(带状矩阵/主元法)

    本文章是[学习笔记]概率与期望进阶的一部分 由于时间问题我写的比较简略,所以我把大佬的总结链接贴上来了(应该没什么吧qwq). 1 概述 最常见的当然是随机游走问题了- • fu=∑pu,v∗(fv+ ...

最新文章

  1. 暴雨之后,评估与重建可以用这个数据集
  2. SVN checkout
  3. Android开源框架源码鉴赏:Fresco
  4. 自学编程的 6 个技巧总结
  5. Latex 加空格的方法
  6. console输出彩色字体
  7. HDU-1255 覆盖的面积 矩形面积交
  8. Intellij IDEA如何打包jar文件?
  9. 软媒魔方 6.0 正式绿色版
  10. 戴尔服务器预装系统如何降级,在戴尔计算机上降级系统BIOS | Dell 中国
  11. Redis事务特性分析
  12. python随笔12(传递任意数量的实参)
  13. [HDU 5349] MZL's simple problem 神题
  14. NUC搭建Centos8服务器
  15. 什么是combo复用口,光电类型如何转换?
  16. mtk使用android开关机动画,android MTK修改开关机动画
  17. java拉阔机甲战棋游戏,《火焰VS外传:亡灵塔》评测:又见战棋,舍我其谁
  18. DDR3的学习笔记(一)
  19. 计算机专业的高考要考什么科,高考技术科目考什么内容
  20. 第一篇博客,写给自己

热门文章

  1. java 设计模式实战,适配器模式之万物拟人化
  2. commvault备份mysql数据库_2-CommVault备份项目实施方案-XXXX.docx
  3. Google Bigtable (中文版)
  4. Android开发之自定义View之音阶图谱
  5. mockups 安装
  6. 使用app inventor快速开发安卓app(第一课,点击计数游戏)
  7. 改变chart坐标轴的起始值
  8. linux绝育玩客云_绝育老母鸡(玩客云)PT下载补充。如何过新手考核
  9. 如何在Mac上刻录DVD以获取可播放的视频?
  10. GDI函数 坐标系综述