您好,欢迎访问三七文档
机器视觉课内实验报告(4次)学院:自动化班级:智能姓名:学号:目录实验一:一种摄像机标定算法的编程实现………………………1实验二:图像预处理算法的编程实现……………………………8实验三:基于一阶微分算子的边缘检测…………………………14实验四:基于二阶微分算子的边缘检测…………………………17-1-《机器视觉》课内实验报告(1)摄像机标定算法的编程实现专业:智能科学与技术班级:学号:姓名:实验时间:-2-实验一MATLAB编程实现基于直接线性变换的摄像机标定方法一、实验目的掌握摄像机标定方法的原理,采用直接线性变换方法,通过MATLAB编程实现摄像机内参数和外参数的估计。二、实验原理摄像机标定是指建立摄像机图像像素位置与场景点位置之间的关系,其途径是根据摄像机模型,由已知特征点的图像坐标求解摄像机的模型参数。直接线性变换是将像点和物点的成像几何关系在齐次坐标下写成透视投影矩阵的形式:其中(u,v,1)为图像坐标系下的点的齐次坐标,(X,Y,Z)为世界坐标系下的空间点的欧氏坐标,P为3*4的透视投影矩阵,s为未知尺度因子。消去s,可以得到方程组:当已知N个空间点和对应的图像上的点时,可以得到一个含有2*N个方程的方程组:三、实验步骤1读取一幅图像并显示;2检查内存(数组)中的图像;3实现图像直方图均衡化;4读取图像中像素点的坐标值;5保存图像;6检查新生成文件的信息;7使用阈值操作将图像转换为二值图像;8根据RGB图像创建一幅灰度图像;9调节图像的对比度;10在同一个窗口内显示两幅图像;11掌握Matlab命令及函数,获取标定块图像的特征点坐标;12根据DLT摄像机标定方法原理编写Matlab程序,估计摄像机内参数和外参数;1143upuZpuYpuXppZpYpXpupuZpuYpuXppZpYpXpAL-3-四、程序代码及实验结果显示代码:I=imread('C:\Users\);imshow(I);whosfigure,I1=rgb2gray(I);figure,imshow(I1)imhist(I1);I2=histeq(I1);figure,imshow(I2)figure,imhist(I2)a=imread('C:\Users\);imwrite(I1,'DSgray.jpg');imwrite(I2,'DSgrayeq.jpg');inf=imfinfo('C:\Users\);level=graythresh(I2);bw=im2bw(I2,level);figure,imshow(bw)whosI3=imadjust(I2,stretchlim(I2),[01]);figure,imshow(I3);a=imread('C:\Users\);b=imread('DSgray.jpg');subplot(1,2,1),imshow(a);subplot(1,2,2),imshow(b);clear;xpot=[];ypot=[];imshow('C:\Users\);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]-4-a=[xw',yw',zw',ones([1001]),zeros([1004]),(-1)*xpot'.*xw',(-1)*xpot'.*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;显示两幅图对比度调节-5-均衡化直方图灰度图直方图-6-二进制图图片信息:名称:12.jpg项目类型:JPG图像文件夹路径:C:\Users\创建日期:2017年11月6日,星期一13:16修改日期:2017年11月6日,星期一13:16大小:111KB分辨率:1024x638宽度:1024像素高度:638像素水平分辨率:72dpi垂直分辨率:72dpi位深度:24检查内存中的图像:NameSizeBytesClassAttributesI638x1024x31959936uint8ans2x15240doublei1x18doublen1x18doublex1x18doublexpot1x15120doubley1x18doubleypot1x15120doubleNameSizeBytesClassAttributesI638x1024x31959936uint8I1638x1024653312uint8-7-I2638x1024653312uint8a638x1024x31959936uint8ans2x15240doublebw638x1024653312logicali1x18doubleinf1x142720structlevel1x18doublen1x18doublex1x18doublexpot1x15120doubley1x18doubleypot1x15120doublePleaseinputthenumberofpot:10ans=550.3592391.7113261.9085521.5141838.8099921.7394211.4296117.6831770.3028957.7958463.7254308.6831146.4296160.8521283.4437492.5704460.1197247.3873113.9789157.2465五、实验心得-8-《机器视觉》课内实验报告(2)图像预处理算法的编程实现专业:智能科学与技术班级:学号:姓名:实验时间:-9-实验二:图像预处理算法的编程实现一、实验目的掌握图像预处理的基本方法及其主要思想,编程实现直方图均衡化、直方图规定化和图像的锐化处理。二、实验原理(1)直方图均衡化的基本思想是把原始图的直方图变换为均匀分布的形式,这样就增加了像素灰度值的动态范围,从而可达到增强图像整体对比度的效果。直方图均衡化是灰度变换的一个重要应用,广泛应用在图像增强处理中,它是以累计分布函数变换为基础的直方图修正法之一,可以产生一幅灰度级分布具有均匀概率密度的图像,扩展了像素的取值动态范围。若像素点的原灰度为R,变换后的灰度为S,需要注意的是R、S是归一化后的灰度值,其灰度变换函数T(R)为:1,,010)()(0klRnnRpRTSjkojjjkjr;;式中,是第j级灰度值的概率,是图像中j级灰度的像素总数,是图像中灰度级的总数目,是图像中像素的总数。对变换后的S值取最靠近的一个灰度级的值,建立灰度级变换表,将原图像变换为直方图均衡的图像。(2)直方图规定化是能够有目的地增强某个灰度区间的图像,即能够人为地修正直方图的形状,使之与期望的形状相匹配。换句话说,希望可以人为地改变直方图形状,使之成为某个特定的形状,直方图规定化就是针对上述要求提出来的一种增强技术,它可以按照预先设定的某个形状来调整图像的直方图。直方图规定化是在运用均衡化原理的基础上,通过建立原始图像和期望图像之间的关系,选择地控制直方图,使原始图像的直方图变成规定的形状,从而弥补了直方图均衡不具备交互作用的特性。(3)图像锐化是一种补偿轮廓、突出边缘信息以使图像更为清晰的处理方法。为了要把图像中间任何方向伸展的边缘和轮廓线变得清晰,我们希望对图像的某种运算是各向同性的。可以证明偏导平方和的运算是各向同性的,即:式中是图像旋转前的坐标,是图像旋转后的坐标。梯度运算就是在这个式子的基础上开方得到的。图像(x,y)点的梯度值:为了突出物体的边缘,常常采用梯度值的改进算法,将图像各个点的梯度值与某一阈值作比较,如果大于阈值,该像素点的灰度用梯度值表示,否则用一个-10-固定的灰度值表示。我们在对图像增强的过程中,采用的是一种简单的高频滤波增强方法:式中f,g分别为锐化前后的图像,是与扩散效应有关的系数。表示对图像f进行二次微分的拉普拉斯算子。这表明不模糊的图像可以由模糊的图像减去乘上系数的模糊图像拉普拉斯算子来得到。可以用下面的模板H={{1,4,1},{4,-20,4},{1,4,1}}来近似。在具体实现时,上述模板H中的各个系数可以改变,这个系数的选择也很重要,太大了会使图像的轮廓过冲,太小了则图像锐化不明显。实验表明,选取2-8之间往往可以达到比较满意的效果。三、实验步骤1、输入一幅图像;2、对该图像进行直方图均衡化处理,输出实验结果;3、对该图像进行直方图规定化处理,输出实验结果;4、对该图像进行图像锐化,输出实验结果;5、对实验结果截图,并分析实验结果。四、程序代码及实验结果显示1、直方图均衡化I=imread('C:\Users\桌面图片\c.jpg');I=rgb2gray(I);figure;subplot(2,2,1);imshow(I);subplot(2,2,2);imhist(I);%获取图像数据直方图I1=histeq(I);%直方图均衡化subplot(2,2,3);imshow(I1);subplot(2,2,4);imhist(I1);-11-2、直方图规定化clearall;closeall;%扩展原图像形成中间图像的高斯滤波orgin=imread('C:\Users\桌面图片\c.jpg');orgin=rgb2gray(orgin);%读入原图像[m_o,n_o]=size(orgin);orgin_hist=imhist(orgin)/(m_o*n_o);standard=imread('C:\Users\桌面图片\j.jpg');%读入标准图standard=rgb2gray(standard);[m_s,n_s]=size(standard);standard_hist=imhist(standard)/(m_s*n_s);startdard_value=[];%标准图累积直方orgin_value=[];%原图像累积直方fori=1:256startdard_value=[startdard_valuesum(standard_hist(1:i))];orgin_value=[orgin_valuesum(orgin_hist(1:i))];endfori=1:256value{i}=startdard_value-orgin_value(i);value{i}=abs(value{i});[tempindex(i)]=min(value{i});end-12-newimg=zeros(m_o,n_o);fori=1:m_oforj=1:n_onewimg(i,j)=index(orgin(i,j)+1)-1;endendnewimg=uint8(newimg);subplot(2,3,1);imshow(orgin);title('原图');subplot(2,3,2);imshow(standard);title('标准图');subplot(2,
本文标题:机器视觉课内实验
链接地址:https://www.777doc.com/doc-7257475 .html