资源简介
对血液图片利用matlab工具进行处理,完成图像分割,血液细胞形态特征提取,利用红色外界矩形在原图上将血液框选出来。
有问题可以发邮件至:1263398286@qq.com
代码片段和文件信息
%*************************************************************%
%作者:杨吕鹏
%时间:2018/7/21
%实现功能:对血液图片进行处理,提取图片中的红细胞的形态特征,实现红细胞计数。正确率大于95%。
close all;clear all;clc;
%*************************************************************%
I = imread(‘blood.jpg‘);%读取血液图像
I = rgb2gray(I); %将彩图转为灰度图
%figure(1);imshow(I);
%***********************平滑***********************************%
h = fspecial(‘average‘3); %3*3均值滤波模板
I = imfilter(I h ‘replicate‘); %重复填充边界
%figure(2);imshow(I);
%*********************对原图像进行二值化处理********************%
t = graythresh(I); %计算阈值t
C = im2bw(It); %根据阈值二值化图像
%C = not(C);
%figure(3);subplot(131)imshow(C);
%**********************技巧性处理******************************%
%该处理主要是针对图片四周的红细胞的处理,便于下一步的填充处理,避免将边缘的红细胞去除
[rc] = size(C);
C(1:) = 1;
%C(r:) = 1;
C(:1) = 1;
C(:c) = 1;
C(2:) = 0;
%C(r-1:) = 0;
C(:2) = 0;
C(:c-1) = 0;
C = not(C);
%**********************填充处理********************************%
D=imfill(C8‘holes‘);%对处理后的红细胞进行填充处理
%figure(3)subplot(132)imshow(C);
D = D - C;
D = imfill(D8‘holes‘);
%figure(3)subplot(133)imshow(D);
%*********************标记区域*********************************%
[LN] = bwlabel(D8); %连通标记
s = regionprops(L‘Area‘);%将连通标记结果对应连通区域计算面积
F = bwareaopen(D1308); %根据上面统计的面积,结合图片,将面积小于130个像素点的区域删除。注意,这里存在一个大气泡和白细胞无法去除
[LN] = bwlabel(F8); %对处理后的图像重新进行连通标记
%figureimshow(F);
B = bwboundaries(F); %疑似红细胞边界提取
%*******************目标的坐标提取*****************************%
for g = 1:length(B)
boundary = B{g}; %依次提取每个目标的边界
Y = boundary(:1);
X = boundary(:2);
Ymax = max(Y); %疑似红细胞上边界
Ymin = min(Y); %疑似红细胞下边界
Xmax = max(X); %疑似红细胞左边界
Xmin = min(X); %疑似红细胞右边界
x(g) = floor((Xmax + Xmin)/2);%记录疑似红细胞的横坐标
y(g) = floor((Ymax + Ymin)/2);%记录疑似红细胞的纵坐标
end
%***********************目标提取******************************%
figureimshow(I);
for i = 1:g
rectangle(‘Position‘[x(i)-21 y(i)-21 42 42]...
‘edgecolor‘‘r‘‘LineWidth‘2);
end
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 131438 2018-07-21 13:00 红细胞提取\blood.jpg
文件 2451 2018-07-21 17:27 红细胞提取\blood.m
目录 0 2018-07-21 17:27 红细胞提取
----------- --------- ---------- ----- ----
133889 3
- 上一篇:LMS和RLS算法
- 下一篇:ROC曲线AUC计算
相关资源
- matlab 采用BP实现Mnist数据集代码
- HVDC高压直流输电matlab仿真
- matlab代码,可将三角网格网格转换成
- Anderson CFD 代码 matlab
- 用MATLAB实现相机图像标定
- 如何在matlab中调用C程序
- matlab实现图像透明叠加
- 静电场边值问题编程仿真
- 霍夫变换 检测直线 matlab
- 自己编写的FFT程序matlab
- 锁相环matlab实现
- matlab R2013a 安装图解+BT
- WCDMA matlab仿真实现
- matlab选择三维点坐标
- MVDR算法进行谱估计
- 计算图像对比度
- GP matlab 代码
- MATLAB绘制蜂窝网络程序
- 基于小波阈值去噪
- mk检验matlab程序
- matlab模板实现对图像的平均滤波处理
- PSO工具箱使用简介\\test_func.mmatlab程序
- matlab源程序代码遗传算法工具箱\\ge
-
遗传算法工具箱\\genetic\\crtba
se.mma - MATLAB基于肤色模型和模板匹配的人脸
- 船舶回转试验与Z形操舵试验matlab仿真
- 利用MATLAB中Sim+Power+Systems模库时变压器
- KNN分类MatLAB源代码附论文
- RLS自适应滤波器的matlab设计与仿真
- 基于地图工具箱的船舶定位研究matl
评论
共有 条评论