您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 冶金工业 > 基于圆形物体中心及半径的确定
燕山大学课程设计说明书题目:26基于圆形物体中心和半径的确定学院(系):电气工程学院年级专业:12级仪表三班学号:120103020191学生姓名:陈鹤天指导教师:赵彦涛吴晓光教师职称:副教授讲师燕山大学课程设计(论文)任务书院(系):电气工程学院基层教学单位:自动化仪表系学号120103020191学生姓名陈鹤天专业(班级)12级仪表三班设计题目基于圆形物体中心和半径的确定设计技术参数几句图像处理的知识,确定图像中两点的中心点的位置,并能确定其大小(即半径),尽量使用较多的方法实现,并且比较每种方法的处理速度。设计要求设计确定图像中圆形物体的中心坐标及半径,尝试不同的定位方法,并进行比较。设计中应具有自己的设计思想、设计体会。工作量了解Matlab的基本操作,查找与课程设计相关的资料,编写程序并调试,写论文,准备课程设计答辩。工作计划12月8日,熟悉Matlab的基本操作12月9日,查找与课程设计课题相关的资料12月10日,设计程序并调试12月11日,调试程序并写论文12月12日,整理论文,课程设计答辩参考资料1、数字图像处理学电子公告也出版社贾永红20032、数字图像处理(Matlab版)电子工业出版社冈萨雷斯20063、其他数字图像处理和matlab变成发面的书记及相关学习资料指导教师签字赵彦涛吴晓光基层教学单位主任签字谢平说明:此表一式四份,学生、指导教师、基层教学单位、系部各一份。2014年12月12日燕山大学课程设计评审意见表指导教师评语:工作态度认真较认真不认真理论分析正确完善较为合理一般较差方法设计完善合理一般较差成绩:指导教师:2014年12月12日答辩小组评语:原理清晰基本掌握了解不清楚设计结论正确基本正确不正确成绩:评阅人:2014年12月12日课程设计总成绩:答辩小组成员签字:赵彦涛程淑红王志斌童凯2014年12月12日燕山大学课程设计说明书4摘要首先对图像进行二值化,然后用bwlabel,regionprops等函数对二值图像进行去除噪声操作,然后通过找出与所求区域具有相同标准二阶中心矩的椭圆的长轴长度,短轴长度,离心率等,并找出包含所求区域的最小凸多边形,的顶点坐标。通过一定的方法,用所求椭圆的相关参数确定一个正多边形。使该正多边形具有一个相当大的边数,是该多边形接近一个圆。这个圆就是所要拟合的圆。最后通过三个点求圆的中心和半径。关键字二值化处理去噪声处理圆的拟合已知三点求圆的中心和半径燕山大学课程设计说明书5目录第一章彩色图像的二值化1图像的二值化原理2图像的二值化的程序实现3二值化前后效果对比第二章去除噪声1去除噪声的原理2去除噪声的程序实现3去除噪声前后的图像对比第三章圆拟合1圆拟合原理2圆拟合的程序实现3拟合效果第四章求圆心及半径第五章小圆的求取第六章完整的Matlab程序总结参考文献资料燕山大学课程设计说明书6第一章彩色图像的二值化第一节图像的二值化原理图像的二值化处理就是将图像上的点的灰度置为0或255,也就是讲整个图像呈现出明显的黑白效果。即将256个亮度等级的灰度图像通过适当的阀值选取而获得仍然可以反映图像整体和局部特征的二值化图像。在数字图像处理中,二值图像占有非常重要的地位,特别是在实用的图像处理中,以二值图像处理实现而构成的系统是很多的,要进行二值图像的处理与分析,首先要把灰度图像二值化,得到二值化图像,这样子有利于再对图像做进一步处理时,图像的集合性质只与像素值为0或255的点的位置有关,不再涉及像素的多级值,使处理变得简单,而且数据的处理和压缩量小。所有灰度大于或等于阀值的像素被判定为属于特定物体,其灰度值为255表示,否则这些像素点被排除在物体区域以外,灰度值为0,表示背景或者例外的物体区域。第二节图像的二值化的程序实现方法一:首先将图像转变为灰度图像,再利用max,min等函数求阈值分割点,最后转化为二值化图像相关程序:J=imread('1.jpg');%读图像figure;imshow(J);%显示原始图像P=rgb2gray(J);%转换为灰度图像[m,n]=size(P);%获取图像的行数和列数ma=max(max(P));%求最大值mi=min(min(P));%求最小值limen=(ma+mi)/2;%求分割阈值I=(Plimen);%二值化figure;imshow(I);%显示二值化图像方法二:首先将图像转变为灰度图像,再利用graythresh等函数求阈值分割点,最后用函数im2bw进行二值化。燕山大学课程设计说明书7J=imread('1.jpg');%读图像P=rgb2gray(J);%转换为灰度图像level=graythresh(P);%求分割阈值I=im2bw(P,level);%二值化imshow(I);%显示二值化图像第三节二值化前后效果对比燕山大学课程设计说明书8第二章去除噪声第一节去除噪声的原理噪声在理论上可以定义为“不可预测,只能用概率统计方法来认识的随机误差”。实际获得的图像一般都因受到某种干扰而含有噪声。引起噪声的原因有敏感元器件的内部噪声、相片底片上感光材料的颗粒、传输通道的干扰及量化噪声等。噪声产生的原因决定了噪声的分布特性及它和图像信号的关系.先利用bwlabel函数标注连通区域,在通过regionprops函数找出其中的噪声区域,并置零,以此达到去除噪声的目的。第二节去除噪声的程序实现L=bwlabel(I);%功能:标注二进制图像中已连接的部分。stats=regionprops(L,{'Area','ConvexHull','MajorAxisLength',...'MinorAxisLength','Eccentricity','Centroid'});%用来度量图像区域属性的函数。测量燕山大学课程设计说明书9标注矩阵L中每一个标注区域的一系列属性。L中不同的正整数元素对应不同的区域。%A=[];%定义数组A%fori=1:length(stats)A=[Astats(i).Area];%'Area'是标量,计算出在图像各个区域中像素总个数。%End[mA,ind]=max(A);I1=I;I1(find(L~=ind))=0;Figure;imshow(I1);第三节去除噪声前后的图像对比燕山大学课程设计说明书10第三章圆拟合第一节圆拟合原理首先通过regionprops函数找出与所求区域具有相同标准二阶中心矩的椭圆的长轴长度,短轴长度,离心率等,并找出包含所求区域的最小凸多边形,的顶点坐标。通过一定的方法,用所求椭圆的相关参数确定一个正多边形。使该正多边形具有一个相当大的边数,是该多边形接近一个圆。这个圆就是所要拟合的圆。在指令t=linspace(0,2*pi,N)中,N-1表示所求正多边形的边数,N越大,所拟合的圆越精确。第二节圆拟合的程序实现stats=regionprops(L,{'Area','ConvexHull','MajorAxisLength',...'MinorAxisLength','Eccentricity','Centroid'});%用来度量图像区域属性的函数。测量标注矩阵L中每一个标注区域的一系列属性。L中不同的正整数元素对应不同的区域。%A=[];%定义数组A%fori=1:length(stats)A=[Astats(i).Area];%'Area'是标量,计算出在图像各个区域中像素总个数。%End[mA,ind]=max(A);燕山大学课程设计说明书11I1=I;I1(find(L~=ind))=0;figure;imshow(I1)holdon;temp=stats(ind).ConvexHull;%'ConvexHull'是p行2列的矩阵,包含某区域的最小凸多边形。此矩阵的每一行存储此多边形一个顶点的xy坐标。%t=linspace(0,2*pi);%用法:linspace(x1,x2,N)功能:linspace是Matlab中的一个指令,用于产生x1,x2之间的N点行矢量。其中x1、x2、N分别为起始值、终止值、元素个数。若缺省N,默认点数为100。应用举例例一:在matlab的命令窗口输入:X=linspace(1,100)将产生从1到100步长为1的数组。类似于在命令窗口中输入:X=[1:1:100]例二:在命令窗口中输入:X=linspace(5,100,20)将输出:X=5101520253035404550556065707580859095100这和X=[5:5:100]的效果是一样的。%c1=stats(ind).Centroid;%'Centroid'是1行ndims(L)列的向量,给出每个区域的质心(重心)。注意:Centroid的第一个元素是重心水平坐标(x坐标)、第二个元素是重心垂直坐标(y坐标)。Centroid所有其它元素则按照维顺序排列。燕山大学课程设计说明书12a1=stats(ind).MajorAxisLength;%'MajorAxisLength'是标量,与区域具有相同标准二阶中心矩的椭圆的长轴长度(像素意义下)。标准二阶中心矩就是标准方差%b1=stats(ind).MinorAxisLength;%'MinorAxisLength'是标量,与区域具有相同标准二阶中心矩的椭圆的短轴长度(像素意义下)%d1=stats(ind).Eccentricity;%'Eccentricity'是标量,与区域具有相同标准二阶中心矩的椭圆的离心率(可作为特征)%x1=c1(1)+d1*b1*cos(t);y1=c1(2)+d1*a1*sin(t);m=plot(x1,y1,'b-');%拟合出一个蓝色的圆第三节拟合效果原图效果改进效果燕山大学课程设计说明书13改进效果对比如下灰度化二值化燕山大学课程设计说明书14去噪以及圆的拟合燕山大学课程设计说明书15第四章求圆心及半径通过在所拟合的圆上任取三个点,通过这三个点确定远的圆心和半径x2=x1(1,1);y2=y1(1,1);x3=x1(1,30);y3=y1(1,30);x4=x1(1,80);y4=y1(1,80);a=2*(x3-x2);b=2*(y3-y2);n=(x3*x3+y3*y3-x2*x2-y2*y2);d=2*(x4-x3);e=2*(y4-y3);f=(x4*x4+y4*y4-x3*x3-y3*y3);x0=(b*f-e*n)/(b*d-e*a+eps)%求圆心坐标y0=(d*n-a*f)/(b*d-e*a+eps)r0=sqrt((x0-x2)*(x0-x2)+(y0-y2)*(y0-y2))%求半径燕山大学课程设计说明书16实际结果:(坐标原点在左上角)第五章小圆的求取滤波二值化去噪后效果图燕山大学课程设计说明书17相应算法I=imread('C:\Users\HD\Desktop\123.jpg');I1=rgb2gray(I);I1=im2bw(I1,0.5);%利用阀值二值化,后边设置阀值alpha=0.1;H=fspecial('laplacian',alpha);%fs用于建立预定义的滤波算子,al控制算子形状B=imfilter(I1,H,'replicate');%滤波I1输入图像H滤波掩膜L=bwlabel(B,8);[m,n]=size(L);mm=round(m/2);nn=round(n/2);mark=L(mm,nn);whilemark==L(mm,nn)nn=nn+1;endnn=find(L==L(mm,nn));%nn就是那个圈LL=zeros(m,n);LL(nn)=1;imshow(LL);[m,n]=size(LL);求取圆上三点坐标fori=m:-1:1forj=1:nif(LL(i,j)==1)i1=i;j1=j;endendendfori=1:mforj=1:nif(LL(i,j)==1)i2=i;燕山大学课程设计说明书18j2=j;endendend%forj=n:-1:1fori=1:mif(LL(i,j
本文标题:基于圆形物体中心及半径的确定
链接地址:https://www.777doc.com/doc-4401401 .html