资源简介
用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‘
相关资源
- 基于特征匹配和RANSAC的三维点云拼接
- matlab 求最小外接矩形
- 遗传算法求函数f=x+10*sin(5*x)+7*cos(
- 7种图像降噪matlab实现
- MATLAB神经网络编程
- 医学三维重建MATLAB体绘制算法:光线
- 代码MATLAB基于形态学的目标检测一
- 手势识别,基于 MATLAB
- 电动汽车充电站选址定容matlab程序代
- 智能微电网粒子群优化算法.7z
- 随机hough变换的matlab实现,源码解释很
- LBP图像特征提取matlab程序
- 免疫算法 MATLAB代码
- 基于MATLAB生成孔隙网络结构.txt
- 二维小波变换的matlab程序
- 图像二值化的三种方法matlab
- 关于电力负荷的SVM预测,设计了MATL
- canny算子做目标提取 matlab实现
- 箱型图消除异常值
- 模拟退火算法MATLAB实现代码2
- 基于matlab仿真的FM信号源代码
- 车牌识别Matlab程序可区分0和Q及处理倾
- 雷达波位编排matlab
- LFM回波模拟matlab
- 不同统计分布雷达散射截面和回波模
- 16QAM的matlab程序
- 提取图像Hu不变矩,Matlab函数~~~
- canny算子matlab源代码
-
Matlab simuli
nk 流水灯模型 slx文件 简 - 六自由度机械手matlab仿真模型
评论
共有 条评论