- 一、前言
物料堆积角是反映物料特性的重要参数,传统的测量方法将物料自然堆积,测量物料形成的圆锥表面与水平面的夹角即可,该方法检测效率低。随着数字成像设备的推广和应用,应用数字图像处理可以更准确更迅速地进行堆积角测量。
首先,通过数字图像处理设备获取物料堆积图像,注意拍摄角度和光照情况,保证原始图像质量。其次,读入彩色图像,进行图像二值化,边缘检测,拟合直线,计算堆积角。
-
二、程序代码
clear all
close all
clc
I=imread('.\licorice.jpg');%读入图像
imshow(I)
Igray=rgb2gray(I);
figure,imhist(Igray);
figure,imhist(I) %灰度直方图
I1=im2bw(I,210/255);%阈值分割,在2018b中可以直接对彩色图像进行阈值分割
imshow(I1)
[m,n]=size(I1)
I2=I1(:,1:1200);
figure,imshow(I2);
I2=~I2;
im3=imfill(I2,'holes'); %孔洞填充
figure
imshow(im3)
obj_edge=edge(double(im3)); % 检测图像的边缘
figure
imshow(obj_edge);
[x,y]=find(obj_edge); %得到图像边缘点坐标
x=-x; %数字图像坐标轴转换
plot(y,x,'k.'); %画出边缘点坐标的图像
k=polyfit(y,x,1); %根据之前的图像拟合出直线斜率,截距,%polyfit - 多项式曲线拟合 1是多项式曲线幂次
plot(y,x,'*',y,polyval(k,y)) %画出拟合的直线 polyval--- valuate polynomial.
fprintf('甘草的堆积角为:%f\n',k(1)*180/(pi)) %输出甘草堆积角
%本程序在2018b通过
-
三、程序的主要运行结果
-
四、原始图像
如果觉得本案例对大家今后的编程有帮助,请点赞和收藏。如有改进意见可以与我联系,谢谢!