收藏 分销(赏)

细胞图像处理大作业.doc

上传人:天**** 文档编号:3163656 上传时间:2024-06-21 格式:DOC 页数:6 大小:202.50KB 下载积分:6 金币
下载 相关 举报
细胞图像处理大作业.doc_第1页
第1页 / 共6页
细胞图像处理大作业.doc_第2页
第2页 / 共6页


点击查看更多>>
资源描述
. 实验报告 实验课程: 数字图像处理 实验名称: 骨髓细胞计数 实验地点: 计算机中心405 学生姓名: 学 号: 指导教师: 实验时间: 年 月 一、实验要求: 将被染成紫色的白细胞从较暗的红细胞和背景中分割出来,去除细胞粘连,用数字图像处理技术实现图像中紫色细胞的自动计数。 二、实验过程 1、对原图像进行预处理 (1)由于源图像是彩色图像,为了便于进行仿真实验,在进行处理之前需要将彩色图像转换为灰度图像。用到的函数为rgb2gray (2)获取图像的全局阈值并将图像二值化,以方便后面实验中对图像进行形态学修饰的进行 (3)在图像获取过程中,由于热传输等影响,会产生高斯噪声,较适合采用中值滤波的方法进行去噪处理。因为,中值滤波的方法能够较好的保护细胞的边缘信息,满足本实验的需求; (4)删除小面积图像 (5)对图像进行开闭运算。开和闭这两种运算可以除去比结构元素小的特定图像细节,同时保证不产生全局几何失真。开运算可以把比结构元素小的突刺滤掉,切断细长搭接而起到分离作用;闭运算可以把比结构元素小的缺口或孔填充上,搭接短的间隔而起到连接作用。 (6)对图像进行孔洞填充, (7)开闭运算会留下一些偏离的孤立像素,使用bwareaopen来移除少于特定像素个数的斑点。BW2= bwareaopen(BW,P)从二值图像中移除所以少于P像素值的连通块,得到另外的二值图像BW3。 实验图片显示如下: 2、分割计数 本次实验采用分水岭法对进行过预处理的图像进行分割和计数,最后计数得紫色细胞个数为35 三、实验心得体会 通过这学期的学习,我获益匪浅,学到了很多有趣的知识,知道了什么是灰度图,二值化,阈值,分水岭等很多有趣的图像处理方法,知道了怎么使用matlab帮助查找自己不会的函数,也成功的自己独立完成了细胞的计数。这门课也激起了我对图像处理的兴趣,课程结束后也会继续学习更多的函数知识,不会停止这方面的学习。 四、源代码 Image = imread('b1.bmp'); subplot(321); imshow(Image); title('原图'); Image=rgb2gray(Image); subplot(322); imshow(Image); title('灰度图'); Theshold = graythresh(Image); BW = im2bw(Image,1.3*Theshold); subplot(323),imshow(BW); title('二值化图像'); BW1= medfilt2(BW,[13 13]); BW1=bwareaopen(BW,50,4) subplot(3,2,4); imshow(BW1); title('删除小面积后图像'); se=strel('disk',5); fo=imopen(BW1,se); foc=imclose(fo,se) subplot(3,2,5); imshow(foc); title('开闭运算后图像'); BW2=imfill(foc,'holes'); subplot(3,2,6); imshow(BW2); title('孔洞填充后图像'); BW3=bwareaopen(BW2,20); D=bwdist(~BW3); D=-D; D(~BW3)=-Inf; L=watershed(D); rgb=label2rgb(L,'jet'); figure; imshow(rgb,[]); title('分水岭分割计算后图像'); number=max(max(L))-1; number 方法一源程序: A=imread('y1.bmp'); B=rgb2gray(A); h=[0 1 0,1 -4 1,0 1 0]; J1=conv2(B,h,'same'); K1=medfilt2(J1,[3 3]);¨ BW=edge(K1,'canny'); SE= strel('line',11,90); BW1=imdilate(BW,SE); BW2=bwmorph(BW1,'thin',Inf); [H, theta, rho] = hough(BW2, 'ThetaResolution', 0.2); subplot(221),imshow(H, [], 'XData', theta, 'YData', rho, 'InitialMagnification', 'fit') axis on, axis normal xlabel('\theta'), ylabel('\rho') , peaks = houghpeaks(H, 5); hold on plot(theta(peaks(:, 2)), rho(peaks(:, 1)), ... 'linestyle', 'none', 'marker', 's', 'color', 'w'); lines = houghlines(BW2, theta, rho, peaks); subplot(222),imshow(BW2), hold on for k = 1:length(lines) xy = [lines(k).point1 ; lines(k).point2]; plot(xy(:,1), xy(:,2), 'LineWidth', 4, 'Color', [.8 .8 .8]); end 5 / 6
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 教育专区 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服