资源描述:
《机器视觉课内实验.doc》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、机器视觉课内实验报告(4次)学院:自动化班级:智能姓名:学号:目录实验一:一种摄像机标定算法的编程实现………………………1实验二:图像预处理算法的编程实现……………………………8实验三:基于一阶微分算子的边缘检测…………………………14实验四:基于二阶微分算子的边缘检测…………………………17《机器视觉》课内实验报告(1)摄像机标定算法的编程实现专业:智能科学与技术班级:学号:姓名:实验时间:-0-实验一MATLAB编程实现基于直接线性变换的摄像机标定方法一、实验目的掌握摄像机标定方法的原理,采用直接线性变换方
2、法,通过MATLAB编程实现摄像机内参数和外参数的估计。二、实验原理摄像机标定是指建立摄像机图像像素位置与场景点位置之间的关系,其途径是根据摄像机模型,由已知特征点的图像坐标求解摄像机的模型参数。直接线性变换是将像点和物点的成像几何关系在齐次坐标下写成透视投影矩阵的形式:其中(u,v,1)为图像坐标系下的点的齐次坐标,(X,Y,Z)为世界坐标系下的空间点的欧氏坐标,P为3*4的透视投影矩阵,s为未知尺度因子。消去s,可以得到方程组:当已知N个空间点和对应的图像上的点时,可以得到一个含有2*N个方程的方程组:三、
3、实验步骤1读取一幅图像并显示;2检查内存(数组)中的图像;3实现图像直方图均衡化;4读取图像中像素点的坐标值;5保存图像;6检查新生成文件的信息;7使用阈值操作将图像转换为二值图像;8根据RGB图像创建一幅灰度图像;9调节图像的对比度;10在同一个窗口内显示两幅图像;11掌握Matlab命令及函数,获取标定块图像的特征点坐标;12根据DLT摄像机标定方法原理编写Matlab程序,估计摄像机内参数和外参数;-7-四、程序代码及实验结果显示代码:I=imread('C:UserswwwwDesktop12.
4、jpg');imshow(I);whosfigure,I1=rgb2gray(I);figure,imshow(I1)imhist(I1);I2=histeq(I1);figure,imshow(I2)figure,imhist(I2)a=imread('C:UserswwwwDesktop12.jpg');imwrite(I1,'DSgray.jpg');imwrite(I2,'DSgrayeq.jpg');inf=imfinfo('C:UserswwwwDesktop12.jpg');lev
5、el=graythresh(I2);bw=im2bw(I2,level);figure,imshow(bw)whosI3=imadjust(I2,stretchlim(I2),[01]);figure,imshow(I3);a=imread('C:UserswwwwDesktop12.jpg');b=imread('DSgray.jpg');subplot(1,2,1),imshow(a);subplot(1,2,2),imshow(b);clear;xpot=[];ypot=[];imshow('C:
6、UserswwwwDesktop12.jpg');holdon;n=input('Pleaseinputthenumberofpot:');fori=1:n[x,y]=ginput(1);plot(x,y,'or');text(x+1,y+1,num2str(i));xpot=[xpot,x];ypot=[ypot,y];end[xpot;ypot][xw;yw;zw]-7-a=[xw',yw',zw',ones([1001]),zeros([1004]),(-1)*xpot'.*xw',(-1)*xp
7、ot'.*yw',(-1)*xpot'.*zw',-1*xpot';zeros([1004]),xw',yw',zw',ones([1001]),(-1)*ypot'.*xw',(-1)*ypot'.*yw',(-1)*ypot'.*zw',-1*ypot'];c=a(:,1:11);b=a(:,12);l=(-1)*(c'*c)^(-1)*c'*b;显示两幅图对比度调节-7-均衡化直方图灰度图直方图-7-二进制图图片信息:名称:12.jpg项目类型:JPG图像文件夹路径:C:UserswwwwDeskt
8、op创建日期:2017年11月6日,星期一13:16修改日期:2017年11月6日,星期一13:16大小:111KB分辨率:1024x638宽度:1024像素高度:638像素水平分辨率:72dpi垂直分辨率:72dpi位深度:24检查内存中的图像:NameSizeBytesClassAttributesI638x1024x3uint8ans2x15240doublei1x18doubl