资源简介
1.将药板从黑色背景中分离(药板部分显示为白色,背景显示为黑色);
2. 根据分割结果将药板旋转至水平;
3.提取药板中的药丸的位置信息;
4.对不同颜色药丸的药板进行检测,分析结果上差异,并改进算法使其适应不同颜色的药丸;

代码片段和文件信息
clearclcclose all;
I=imread(‘D:\college\实验二静态图像分割\药板5.tiff‘);
figure;imshow(I);title(‘药板5原图‘)
bw=rgb2gray(I);
bw=im2bw(Igraythresh(bw));
%将药板从黑色背景中分离药板部分显示白色,背景显示黑色
BW1 = imfill(bw ‘holes‘);
figure;imshow(BW1);title(‘药板5分离出的药板‘)
bw=double(bw);
BW=edge(bw‘canny‘);
%边缘检测
[HTR]=hough(BW);
P=houghpeaks(H4‘threshold‘ceil(0.3*max(H(:))));
lines=houghlines(BWTRP‘FillGap‘50‘MinLength‘7);
max_len = 0;
for k=1:length(lines)
xy=[lines(k).point1;lines(k).point2];
len=norm(lines(k).point1-lines(k).point2);
Len(k)=len;
if (len>max_len)
max_len=len;
xy_long=xy;
end
end
[L1 Index1]=max(Len(:));
% 求得线段的斜率
K1=-(lines(Index1).point1(2)-lines(Index1).point2(2))/...
(lines(Index1).point1(1)-lines(Index1).point2(1))
angle=atan(K1)*180/pi
A = imrotate(I-angle‘bilinear‘‘crop‘);%图像旋转
figure; imshow(A);title(‘药板5旋转后的药板‘)
%颜色特征的区域分割
ycbcr=rgb2ycbcr(A);
y=ycbcr(::1);
cb=ycbcr(::2);
cr=ycbcr(::3);
thr_y=graythresh(y);
bw_y=im2bw(ythr_y);
thr_cb=graythresh(cb);
bw_cb=im2bw(cb thr_cb);
B=~(~bw_y+~bw_cb);%将两个颜色空间的图像取反,相加
se=strel(‘disk‘4);%可更改结构元素的大小
B=imclose(Bse);
B=imopen(Bse);
%确定出标记位置
L= bwlabel(~B);
stats = regionprops(L ‘BoundingBox‘);
%在旋转后的图像中标记
figure; imshow(A);title(‘药板5标记药丸位置‘)
hold on;
for i = 1 : length(stats)
if stats(i).BoundingBox(1)>10
rectangle(‘Position‘ stats(i).BoundingBox ‘edgecolor‘ ‘r‘‘LineWidth‘3);%定位标记,‘edgecolor‘ ‘r‘表示边框颜色为红色
end
end
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 1650 2018-05-05 14:27 实验二静态图像分割\fenge.m
文件 177540 2018-04-30 20:55 实验二静态图像分割\实验指导书2018-实验二.pdf
文件 483132 2017-02-13 16:52 实验二静态图像分割\药板1.tiff
文件 975296 2016-01-15 09:52 实验二静态图像分割\药板2.tiff
文件 975296 2016-01-15 09:56 实验二静态图像分割\药板3.tiff
文件 975296 2016-01-15 09:55 实验二静态图像分割\药板4.tiff
文件 975296 2016-01-15 09:52 实验二静态图像分割\药板5.tiff
目录 0 2018-05-05 14:31 实验二静态图像分割
----------- --------- ---------- ----- ----
4563506 8
- 上一篇:SVM分类与回归的matlab代码
- 下一篇:MATLAB数值计算 课后答案
相关资源
- 串行级联cpm系统MATLAB仿真
- matlab_OFDM调制解调(来自剑桥大学)
- Matlab路面裂缝识别69319
- 高灵敏度GPS接收机MATLAB仿真,附捕获
- 基于MATLAB的质点弹道计算与外弹道优
- 阵列天线的matlab仿真
- MATLAB 经典程序源代码大全
- MATLAB小波软阈值去噪代码33473
- 天线阵的波束形成在MATLAB仿真程序及
- 非线性SVM算法-matlab实现
- 《MATLAB 智能算法超级学习手册》-程序
- 组合导航matlab程序
- 读取txt文件内容matlab代码实现
- Matlab实现基于相关的模板匹配程序
- matlab优化工具箱讲解
- 基于MATLAB的快速傅里叶变换
- 光纤传输中的分布傅立叶算法matlab实
- 基于matlab的图像处理源程序
- matlab 椭圆拟合程序
- 算术编码解码matlab源代码
- optical_flow 光流法 matlab 实现程序
- 引导图像滤波器 Matlab实现
- 分形几何中一些经典图形的Matlab画法
- OFDM系统MATLAB仿真代码
- SVM工具箱(matlab中运行)
- 图像小波变换MatLab源代码
- LU分解的MATLAB实现
- 冈萨雷斯数字图像处理matlab版(第三
- 替代数据法的matlab程序
- 用matlab实现的多站定位系统性能仿真
评论
共有 条评论