#大创学习笔记#part1宫颈癌细胞图像分割——直方图最亮谷底阈值确定法提取细胞前景
尝试着做一个工程日记,也想把自己从项目中所学到的知识经验记录下来。而且网上的资源繁多复杂,方法也是各式各样,难免让人眼花缭乱,整理以下思路,供大家参考。
在研究很多篇文献后,我选用了一篇硕士论文中的研究思路,来进行实现。
这篇文献中提到,要对宫颈癌细胞图像进行分割,首先要提取细胞前景图像,从细胞前景中用标记分水岭算法提取细胞核,根据一个区域内细胞核的个数判断其是否是重叠细胞,如果不是,算法结束;如果是重叠的细胞,再分离重叠细胞的细胞质,直到分割结果是单个细胞为止,
提取细胞前景图像的步骤如下:
***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宫颈癌细胞图像分割——直方图最亮谷底阈值确定法提取细胞前景相关推荐
- #大创学习笔记#part1宫颈癌细胞图像分割——直方图最亮谷底阈值确定法提取细胞前景(2)
今天终于开学了,也意味着我终于能够静下心去做大创的项目,汲取新的知识. 数字图像处理作为专业选修课,学分重,任务多.但是我也从中了解到了更多关于图像处理的知识,内心也充满激动,哈哈哈,怕是上课的时候在 ...
- #大创学习笔记#part1宫颈癌细胞图像分割——直方图最亮谷底阈值确定法提取细胞前景(3)
收个尾巴~上次已经能确定分割的阈值了,只要把小于这个阈值的灰度级设为255,大于这个阈值的灰度级设为0,就能观察到结果啦. 在此之前,还要对结果进行一定的改进.我将图像分为三个通道,R通道,G通道,B ...
- 游戏黑客圣经GHB1学习笔记 part1(1-5)
游戏黑客圣经(Game Hacking Bible1) 我在这里记录我所有课程的学习笔记,包括一些小技巧以及源码,俗话说好记性不如烂笔头,写在这里,用于温故而知新. 前言 学习游戏黑客的必备条件 智力 ...
- 计算机网络学习笔记Part1
计算机网络学习笔记Part1 1. 概念 计算机网络:是一个将分散的.具有独立功能的计算机系统,通过通信设备与线路连接起来,由功能完善的软件实现资源共享和信息传递的系统. 2.功能 1.数据通信.2. ...
- matplotlib学习笔记 - 散点图、条形图和直方图
Matplotlib 学习笔记 - 散点图.条形图和直方图 散点图 from matplotlib import pyplot as plt from matplotlib import font_m ...
- Kinect开发学习笔记之(六)带游戏者ID的深度数据的提取
Kinect开发学习笔记之(六)带游戏者ID的深度数据的提取 zouxy09@qq.com http://blog.csdn.net/zouxy09 我的Kinect开发平台是: Win7x86 + ...
- 尚医通项目学习笔记Part1
尚医通项目学习笔记 前言 一.目前学习进度 二.学习记录 1.项目简介 1.1 项目所会用到的技术栈 1.2 业务流程 2.项目学习笔记 2.1MyBatis-Plus相关 2.2搭建项目框架 2.3 ...
- 《统计学:从数据到结论》学习笔记(part1)--统计学是收集、分析、展示和解释数据的科学
学习笔记 学习书籍:<统计学:从数据到结论>-吴喜之: 参考书目:<统计学>-贾俊平 一些统计学的基本概念 啥是统计学? 按照不列颠百科全书关于统计学的定义,统计学是" ...
- [学习笔记]高斯消元求解两种特殊问题(带状矩阵/主元法)
本文章是[学习笔记]概率与期望进阶的一部分 由于时间问题我写的比较简略,所以我把大佬的总结链接贴上来了(应该没什么吧qwq). 1 概述 最常见的当然是随机游走问题了- • fu=∑pu,v∗(fv+ ...
最新文章
- 暴雨之后,评估与重建可以用这个数据集
- SVN checkout
- Android开源框架源码鉴赏:Fresco
- 自学编程的 6 个技巧总结
- Latex 加空格的方法
- console输出彩色字体
- HDU-1255 覆盖的面积 矩形面积交
- Intellij IDEA如何打包jar文件?
- 软媒魔方 6.0 正式绿色版
- 戴尔服务器预装系统如何降级,在戴尔计算机上降级系统BIOS | Dell 中国
- Redis事务特性分析
- python随笔12(传递任意数量的实参)
- [HDU 5349] MZL's simple problem 神题
- NUC搭建Centos8服务器
- 什么是combo复用口,光电类型如何转换?
- mtk使用android开关机动画,android MTK修改开关机动画
- java拉阔机甲战棋游戏,《火焰VS外传:亡灵塔》评测:又见战棋,舍我其谁
- DDR3的学习笔记(一)
- 计算机专业的高考要考什么科,高考技术科目考什么内容
- 第一篇博客,写给自己
热门文章
- java 设计模式实战,适配器模式之万物拟人化
- commvault备份mysql数据库_2-CommVault备份项目实施方案-XXXX.docx
- Google Bigtable (中文版)
- Android开发之自定义View之音阶图谱
- mockups 安装
- 使用app inventor快速开发安卓app(第一课,点击计数游戏)
- 改变chart坐标轴的起始值
- linux绝育玩客云_绝育老母鸡(玩客云)PT下载补充。如何过新手考核
- 如何在Mac上刻录DVD以获取可播放的视频?
- GDI函数 坐标系综述