资源简介
用matlab编写的面积法图像处理识别图中棒材个数,图片名称为0,且应放于与程序所在同一目录
代码片段和文件信息
function mianji()
global TotalRow
global TotalCol
global ImageLable
%%%%%%% 处理图像 %%%%%%%
%I为原始图像
I=imread(‘0.jpg‘);
I1=rgb2gray(I);%灰度化
I2=medfilt2(I1[33]);%中值滤波
thresh=graythresh(I2);
I3=im2bw(I2thresh);%I3为二值化后的图像
se=strel(‘disk‘2);
ImOpen=imopen(I3se);%开运算
%%%%% 连通域贴标签 %%%%%%
%计算连通域的数量number
[TotalRowTotalCol]=size(ImOpen);%获得图像的总行数TotalRow总列数TotalCol
ImageLable=double(ImOpen);%获得空标签
number=1;%连通域的个数赋初值0
seed=0;%种子数赋初值0
for row=1:TotalRow
for col=1:TotalCol
K=zeros(10002);%K为存放种子点坐标的2列矩阵
%寻找一个连通域中的第一个种子像素
if ImageLable(rowcol)==1
seed=1;
K(11)=row;K(12)=col;
number=number+1;
ImageLable(rowcol)=number;%标记
end
%进行区域生长
while seed~=0 %直到所有的种子都生长过才会停止while循环
R=K(seed1);C=K(seed2); %选取K的最后一个为生长用种子
seed=seed-1;%使用过的种子下次不再使用
%八连通情况下判断种子邻域是否物体
for rr=-1:1
for cc=-1:1
if R+rr>=1 && C+cc>=1 && R+rr<=TotalRow && C+cc<=TotalCol && ImageLable(R+rrC+cc)==1;%不考虑边缘
ImageLable(R+rrC+cc)=number;%标记
seed=seed+1;
K(seed1)=R+rr;K(seed2)=C+cc;
end % if R+rr>=1...的end
end % for cc=-1:1的end
end % for rr=-1:1的end
end % while seed~=0的end
end % for col=1:TotalCol的end
end % for row=1:TotalRow 的end
number=number-1;
LableMax=number+1;%标签最大值
%%%%%% 求最佳平均面积 %%%%%%
%step1:计算每个连通域的面积
Area=[];%Area为存放面积的数组
Center=zeros(number2);%Center为存放中心点的矩阵
for LableNum=2:LableMax %标签数值是从2到LableMax
a=LableNum-1;
%拷贝过来的findarea函数开始
Arrr=0;%连通域的“质量”每个像素质量为1
XSum=0;%连通域的横坐标之和
YSum=0;%连通域的纵坐标之和
for x=1:TotalRow
for y=1:TotalCol
if (ImageLable(xy)==LableNum)%选取标签图像中标签为LableNum的像素
XSum=XSum+x;%求目标连通域横坐标和
YSum=YSum+y;%求目标联通域纵坐标和
Arrr=Arrr+1;%求目标连通域“总质量”,即像素总数
end
end
end
centerX=round(XSum/Arrr);
centerY=round(YSum/Arrr);
Area(a)=Arrr;
Center(a1)=centerX;
Center(a2)=centerY;
%拷贝过来的findarea函数结束
end
%step2:据算法得到最接近实际的面积均值
%AreaAver=areaaver(Area);
%拷贝过来的areaaver函数 开始
AreaOrder=sort(Area‘ascend‘
相关资源
- 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实现的多站定位系统性能仿真
- 通过不同方法进行粗糙集属性约简m
评论
共有 条评论