|
MATLAB连通域检测,求解二值化特征,计算轴长、面积、轴长等,并写入Txt文本文件,具体代码如下:
- % 连通域检测,计算特征
- cc = bwconncomp(~bw); % 连通域操作
- stats = regionprops(~bw,'all'); % 提取二值化块的所有特征
- N = cc.NumObjects; % 晶粒个数
- Area = sum( [stats.Area] ); % 面积
- Perimeter = sum( [stats.Perimeter] ); % 周长
- MajorAxisLength = mean( [stats.MajorAxisLength] ); % 长轴长
- MinorAxisLength = mean( [stats.MinorAxisLength] ); % 短轴长
- Area_ratio = Area/size(bw,1)/size(bw,2); % 面积分数
- Area_mean = Area/N; % 平均面积
- Perimeter_mean = Perimeter/N; % 平均周长
- fid=fopen('result.txt','wt'); % 打开文件
- fprintf(fid,'%s','面积 周长 长轴长 短轴长 面积分数 平均面积 平均周长');
- fprintf(fid,'\n');
- fprintf(fid,'%3.4f ',Area); % 输入数据
- fprintf(fid,'%3.4f ',Perimeter); % 输入数据
- fprintf(fid,'%3.4f ',MajorAxisLength); % 输入数据
- fprintf(fid,'%3.4f ',MinorAxisLength); % 输入数据
- fprintf(fid,'%3.4f ',Area_ratio); % 输入数据
- fprintf(fid,'%3.4f ',Area_mean); % 输入数据
- fprintf(fid,'%3.4f ',Perimeter_mean); % 输入数据
- fprintf(fid,'\n');
- fclose(fid); %关闭文件
复制代码
|
|