资源简介
MATLAB实现钢销直径测量,并达到一定精度,附实验报告
代码片段和文件信息
function D=Measure_sun(img)
image_gray= rgb2gray(img); % 图像转灰度
figure(1)subplot(121)imshow(img)title(‘原始图像‘);
subplot(122)imshow(image_gray)title(‘灰度图像‘);
[xy]=size(image_gray); % 求出图象大小
image_bw=~im2bw(image_gray0.5); %二值化并取反
figure(2)imshow(image_bw)title(‘二值化并取反图像‘);
image_cut=image_bw(600:x-600600:y-600); %图像截取
image_cut= bwareaopen(image_cut10); %去除连通域小于10个像素的区域
[Lnum] = bwlabel(image_cut8);
s=zeros(size(image_cut));
s(find(L==2))=1; %提取第二个连通域,并计算第二个连通域的像素值
sm=sum(sum(s));
figure(3)imshow(s)title(‘连通域图‘);
image_edge= edge(s‘canny‘); % 调用canny函数
figure(4)imshow(image_edge)title(‘边缘检测图像‘);
%-----------------------------拟合直线并求d---------------------------%
[uv]=size(image_edge);
[mn]=find(image_edge==1);
n_mean=mean(n);
image_edge(1:un_mean:v)=zeros();
figure(5)imshow(image_edge)title(‘一侧边缘‘);
[m1n1]=find(image_edge==1);
p1 = polyfit(m1n11);
z=polyval(p1m1);
figure(6)plot(m1z)title(‘直线拟合‘);
k1=p1(1); %斜率
theta=atan(k1);
b1=p1(2);%截距
D=(sm./u)*cos(theta);%直径
% end
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 1195 2015-11-30 10:16 机器视觉期末作业\Measure_sun.m
文件 360 2015-11-30 10:19 机器视觉期末作业\Unti
文件 299008 2015-11-30 10:15 机器视觉期末作业\实验报告.doc
目录 0 2015-11-30 10:18 机器视觉期末作业
----------- --------- ---------- ----- ----
300563 4
- 上一篇:adaboost详解及matlab
- 下一篇:MATLAB风机的demo
评论
共有 条评论