当前位置:文档之家› 机器视觉课程设计

机器视觉课程设计

机器视觉课程设计
机器视觉课程设计

机器视觉课程设计

对圆盘形零件圆心与直径和矩形零件长与宽尺寸测量

学生学院机电学院

专业班级

学号

学生姓名

指导教师

2015年 1 月 20 日

目录

1 问题描述 (3)

1.1 基本目标 (3)

1.2 基本要求 (3)

2 程序及其算法 (3)

2.1 检测与计算圆半径的程序 (3)

2.2 检测与计算矩形长和宽的程序 (6)

2.2.1 打开摄像头程序 (6)

2.2.2 保存拍摄的照片程序 (7)

2.2.3 读取拍摄到的图片(读取文名字CurrentImage.jpg的图片) (7)

2.2.4 检测边上的点和计算长和高的函数 (7)

2.2.5 老师写的显示图片的函数 (11)

3 运行结果 (12)

4 小结 (13)

1 问题描述

1.1 基本目标

显示一张图片(包含一个矩形或一个圆),测量矩形的长宽或圆的直径。完成得及格分,扩展有加分!

要求图片

1.2 基本要求

“机器视觉”考试结果要求独立在计算机上完成,建议使用Visual C++和OpenCV 实现一个具有视觉捕捉、图像显示、尺寸测量等功能的对话框程序,其中必须完成对圆盘形零件圆心与直径和矩形零件长与宽尺寸测量内容。在教师提供的基本框架程序基础上,修改、补充界面和功能。

2 程序及其算法

2.1 检测与计算圆半径的程序

思路:从图片中间横扫取点得M_Point[0],M_Point[1](x坐标相加除2的圆心的x 坐标)中间纵向取点得M_Point[2],M_Point[3](y坐标相加除2的圆心的y坐标)圆上四个点到圆心的距离(半径)取平均值,输出为半径。

程序如下:

double c_DialogTeclarn::f_MakeCircle(double e_dThreshold)

{

if(NULL==m_pIplImageSource)

{return 0;}

//定义变量存图像的宽,高,行像素

int q_iWidth=m_pIplImageSource->width;

int q_iHeight=m_pIplImageSource->height;

int q_iWidthStep=m_pIplImageSource->widthStep;

uchar *q_pchDataImage=(uchar *)m_pIplImageSource->imageData;

CvPoint M_Point[4]={};//存放检索出的四个点 循环检索

//01纵扫

for(int Cycle_Y=1;Cycle_Y

{

if(e_dThreshold>q_pchDataImage[q_iWidth/2+q_iWidthStep*(Cycle_Y-1)])

{

M_Point[0].x=q_iWidth/2;

M_Point[0].y=Cycle_Y;

} 显示图片

}

for(int Cycle_Y=q_iHeight;Cycle_Y>1;Cycle_Y--)

{

if(e_dThreshold>q_pchDataImage[q_iWidth/2+q_iWidthStep*(Cycle_Y-1)])

{

M_Point[1].x=q_iWidth/2;

M_Point[1].y=Cycle_Y;

}

}

for(int Cycle_X=1;Cycle_X

{

if(e_dThreshold>q_pchDataImage[Cycle_X+q_iWidthStep*(q_iHeight/2-1)])

{

M_Point[2].x=Cycle_X;

M_Point[2].y=q_iHeight/2;

}

}

for(int Cycle_X=q_iWidth;Cycle_X>1;Cycle_X--)

{

if(e_dThreshold>q_pchDataImage[Cycle_X+q_iWidthStep*(q_iHeight/2-1)])

{

M_Point[3].x=Cycle_X;

M_Point[3].y=q_iHeight/2;

}

}

for (int i=0;i<4;i++)//画边界圆

{cvCircle(m_pIplImageSource,M_Point[i],8,cvScalarAll(127),2);}

int Ridius=0,clear=0;

int circle_y=abs(M_Point[1].y+M_Point[0].y)/2;

int circle_x=abs(M_Point[3].x+M_Point[2].x)/2;

float c=0,j=0;

for (int i=0;i<4;i++)

{

j=(M_Point[i].x-circle_x)*(M_Point[i].x-circle_x)+(M_Point[i].y-circle_y)*(M_Point[i]. y-circle_y);

c=c+sqrt(j);

}

Ridius=c/4;

//在窗口中显示长和高

char ch1[10],ch2[10];

itoa(Ridius,ch1,10);

itoa(clear,ch2,10);

SetDlgItemText(IDC_LONG,ch1);

SetDlgItemText(IDC_SHORT,ch2);

CWnd *e_pCWndPicture=this->GetDlgItem(ID_PICTURE_DISPLAY);

f_ControlShowImage(m_pIplImageDisplay,e_pCWndPicture,m_pIplImageSource);

cvSaveImage(_T(".//Result_Image.jpg"),m_pIplImageSource);

return 0;

}

2.2 检测与计算矩形长和宽的程序

思路:这个程序主要包括:打开摄像头---保存图片(拍照)---加载刚刚保存的图片---找出点并计算长和高四个按钮,每一个按钮包含下面的一段代码,拍摄的图片保存为CurrentImage.jpg,这里事先保存了一张同名的图片,所以可以直接点击Load Image读取。

2.2.1 打开摄像头程序

void c_DialogTeclarn::OnBnClickedButton OpenCamera()

{

CvCapture *q_pCvCapture=cvCreateCameraCapture(0);

if(NULL==q_pCvCapture)

{

return;

}

IplImage *q_pIplImageCapture=cvQueryFrame(q_pCvCapture);

if(NULL==q_pIplImageCapture)

{

return;

}

if(NULL!=m_pIplImageSource)

{

cvReleaseImage(&m_pIplImageSource);

m_pIplImageSource=NULL;

}

m_pIplImageSource=cvCloneImage(q_pIplImageCapture);

cvReleaseCapture(&q_pCvCapture);

CWnd *e_pCWndPicture=this->GetDlgItem(ID_PICTURE_DISPLAY);

f_ControlShowImage(m_pIplImageDisplay,e_pCWndPicture,m_pIplImageSource);

}

注:绿色的为检测是否成功打开摄像头,蓝色的是读取摄像头拍摄的图片到内存,后面的语句是让图片在mfc窗口显示出来。

2.2.2 保存拍摄的照片程序

void c_DialogTeclarn::OnBnClickedButton SaveImage()

{

// TODO: 在此添加控件通知处理程序代码

cvSaveImage(_T(".//CurrentImage.jpg"),m_pIplImageSource);

}

2.2.3 读取拍摄到的图片(读取文名字CurrentImage.jpg的图片)

void c_DialogTeclarn::OnBnClickedButton LoadImage()

{

// TODO: 在此添加控件通知处理程序代码

if(NULL!=m_pIplImageSource)

{

cvReleaseImage(&m_pIplImageSource);

m_pIplImageSource=NULL;

}

m_pIplImageSource=cvLoadImage(_T(".//CurrentImage.jpg"),0);

CWnd *e_pCWndPicture=this->GetDlgItem(ID_PICTURE_DISPLAY);

f_ControlShowImage(m_pIplImageDisplay,e_pCWndPicture,m_pIplImageSource);

}

2.2.4 检测边上的点和计算长和高的函数

思路是:第一步找到边上的点,设定一个变量e_dThreshold值为127,通过循环让它与每一个像素的像素值进行比较。如果检测到一个点的像素值比127小,则这个点可能就是需要的点(黑色=0,白色=255)如果每个像素都要比较运算太多,所以上边两个点的检测是沿着图片长的的2/5分处和3/5分处向下检测,下边的点是沿着1/2处向上检测。第二步是用找到6个点的坐标算出三角形的面积,然后除以底边边长得到高。求三角形的面积用的是行列式的值等于三角形面积的2倍

程序如下:

double c_DialogTeclarn::f_MakeRectangleWidth(double e_dThreshold)

{

// TODO: 在此添加控件通知处理程序代码

//定义一些点和变量

int q_iWidth=m_pIplImageSource->width;

int q_iHeight=m_pIplImageSource->height;

int q_iWidthStep=m_pIplImageSource->widthStep;

uchar *q_pchDataImage=(uchar *)m_pIplImageSource->imageData;

int q_iXLeftTop=2*q_iWidth/5;

int q_iXRightTop=3*q_iWidth/5;

int q_iXBottom=q_iWidth/2;

int q_iYLeftTop=2*q_iHeight/5;

int q_iYLeftBottom=3*q_iHeight/5;

int q_iYRightMid=q_iHeight/2;

CvPoint q_CvPointLeftTop,q_CvPointRightTop,q_CvPointBottom;

CvPoint q_CvPointLeft_Top,q_CvPointRight_Mid,q_CvLeft_Bottom;

//求上下两边上的点,3个循环

for(int q_iCycleHeight=0;q_iCycleHeight

{

if(e_dThreshold>q_pchDataImage[q_iCycleHeight*q_iWidthStep+q_iXLeftTop])

{

q_CvPointLeftTop.x=q_iXLeftTop;

q_CvPointLeftTop.y=q_iCycleHeight;

break;

}

}

for(int q_iCycleHeight=0;q_iCycleHeight

{

if(e_dThreshold>q_pchDataImage[q_iCycleHeight*q_iWidthStep+q_iXRightTop])

{

q_CvPointRightTop.x=q_iXRightTop;

q_CvPointRightTop.y=q_iCycleHeight;

break;

}

}

for(int q_iCycleHeight=q_iHeight-1;q_iCycleHeight>=0;q_iCycleHeight--)

{

if(e_dThreshold>q_pchDataImage[q_iCycleHeight*q_iWidthStep+q_iXBottom])

{

q_CvPointBottom.x=q_iXBottom;

q_CvPointBottom.y=q_iCycleHeight;

break;

}

}

//求左右两边上的点,3个循环

for(int q_iCycleWidth=0;q_iCycleWidth

{

if(e_dThreshold>q_pchDataImage[q_iCycleWidth+q_iWidthStep*(q_iYLeftTop-1)]) {

q_CvPointLeft_Top.x=q_iCycleWidth;

q_CvPointLeft_Top.y=q_iYLeftTop;

break;

}

}

for(int q_iCycleWidth=0;q_iCycleWidth

{

if(e_dThreshold>q_pchDataImage[q_iCycleWidth+q_iWidthStep*(q_iYLeftBottom-1)]) {

q_CvLeft_Bottom.x=q_iCycleWidth;

q_CvLeft_Bottom.y=q_iYLeftBottom;

break;

}

}

for(int q_iCycleWidth=q_iHeight-1;q_iCycleWidth>=0;q_iCycleWidth--)

{

if(e_dThreshold>q_pchDataImage[q_iCycleWidth+q_iWidthStep*(q_iYRightMid-1)]) {

q_CvPointRight_Mid.x=q_iCycleWidth;

q_CvPointRight_Mid.y=q_iYRightMid;

break;

}

}

//在检测到的点上画圆,只是为了更好看到找点的情况

cv Circle(m_pIplImageSource,q_CvPointLeftTop,5,cvScalarAll(127),2);

cvCircle(m_pIplImageSource,q_CvPointRightTop,5,cvScalarAll(127),2);

cvCircle(m_pIplImageSource,q_CvPointBottom,5,cvScalarAll(127),2);

cvCircle(m_pIplImageSource,q_CvPointLeft_Top,5,cvScalarAll(127),2);

cvCircle(m_pIplImageSource,q_CvLeft_Bottom,5,cvScalarAll(127),2);

cvCircle(m_pIplImageSource,q_CvPointRight_Mid,5,cvScalarAll(127),2);

//显示画圆后的图片

CWnd *e_pCWndPicture=this->GetDlgItem(ID_PICTURE_DISPLAY);

f_Control ShowImage(m_pIplImageDisplay,e_pCWndPicture,m_pIplImageSource);

//计算长和高的像素值,三角形3点的坐标构成行列式,行列式的值=2*面积,行列式

的值/底边=高

CvMat Ma;

int HIGH,WIDE;

float Area;

int a=q_CvPointLeftTop.x-q_CvPointRightTop.x;

int b=q_CvPointLeftTop.y-q_CvPointRightTop.y;

double c=a*a+b*b;

//定义行列式

double

arr[9]={q_CvPointLeftTop.x,q_CvPointLeftTop.y,1,q_CvPointRightTop.x,q_CvPointRightTop.y,1,q_CvPo intBottom.x,q_CvPointBottom.y,1};

cvInitMatHeader(&Ma,3,3,CV_64FC1,arr);

Area=abs(cvDet(&Ma));

HIGH=Area/sqrt(c);

int A=q_CvPointLeft_Top.x-q_CvLeft_Bottom.x;

int B=q_CvPointLeft_Top.y-q_CvLeft_Bottom.y;

double C=A*A+B*B;

//定义行列式

Double

ARR[9]={q_CvPointLeft_Top.x,q_CvPointLeft_Top.y,1,q_CvLeft_Bottom.x,q_CvLeft_Bottom.y,1,q_CvPointR ight_Mid.x,q_CvPointRight_Mid.y,1};

cvInitMatHeader(&Ma,3,3,CV_64FC1,ARR);

Area=abs(cvDet(&Ma));

WIDE=Area/sqrt(C);

//在窗口中显示长和高

char ch1[10],ch2[10];

itoa(HIGH,ch1,10);

itoa(WIDE,ch2,10);

SetDlgItemText(IDC_LONG,ch1);

SetDlgItemText(IDC_SHORT,ch2);

cvSaveImage(_T(".//Result_Image.jpg"),m_pIplImageSource);

return 0;

}

//调用上面的函数进行检测点和计算长和高的值,点击第四个按钮会调用这段程序,当里面的函数调用时,它会调用上面那段函数

void c_DialogTeclarn::OnBnClickedButton Rectangle()

{

// TODO: 在此添加控件通知处理程序代码

f_MakeRectangleWidth();

}

2.2.5 老师写的显示图片的函数

void c_DialogTeclarn::f_ControlShowImage(IplImage *&e_pIplImageShow,CWnd *e_pCWndControl, IplImage *e_pIplImageSource)

{

if((NULL==e_pCWndControl)||(NULL==e_pIplImageSource))

{

return;

}

CRect q_CRectControl;

e_pCWndControl->GetClientRect(&q_CRectControl);

if(NULL!=e_pIplImageShow)

{

cvReleaseImage(&e_pIplImageShow);

e_pIplImageShow=NULL;

}

e_pIplImageShow=cvCreateImage(cvSize(q_CRectControl.Width(),q_CRectControl.Height()),

IPL_DEPTH_8U,

e_pIplImageSource->nChannels);

cvResize(e_pIplImageSource,e_pIplImageShow);

HDC q_HDCControl=e_pCWndControl->GetDC()->GetSafeHdc();

unsigned int q_piBuffer[sizeof(BITMAPINFOHEADER)+sizeof(RGBQUAD)*256];

BITMAPINFO *e_pBITMAPINFODisplay=(BITMAPINFO *)q_piBuffer; BITMAPINFOHEADER

*e_pBITMAPINFOHEADERDisplay=&(e_pBITMAPINFODisplay->bmiHeader);

memset(e_pBITMAPINFOHEADERDisplay,0,sizeof(*e_pBITMAPINFOHEADERDisplay));

e_pBITMAPINFOHEADERDisplay->biSize=sizeof(BITMAPINFOHEADER);

e_pBITMAPINFOHEADERDisplay->biWidth=e_pIplImageShow->width;

e_pBITMAPINFOHEADERDisplay->biHeight=-e_pIplImageShow->height;

e_pBITMAPINFOHEADERDisplay->biPlanes=1;

e_pBITMAPINFOHEADERDisplay->biBitCount=8*e_pIplImageShow->nChannels;

e_pBITMAPINFOHEADERDisplay->biCompression=BI_RGB;

RGBQUAD* palette=e_pBITMAPINFODisplay->bmiColors;

if(8==e_pBITMAPINFOHEADERDisplay->biBitCount)

{

for(int q_iCycle=0;q_iCycle<256;q_iCycle++)

{

palette[q_iCycle].rgbBlue=(BYTE)q_iCycle;

palette[q_iCycle].rgbGreen=(BYTE)q_iCycle;

palette[q_iCycle].rgbRed=(BYTE)q_iCycle;

palette[q_iCycle].rgbReserved=(BYTE)0;

}

}

StretchDIBits(q_HDCControl,

q_CRectControl.left,

q_CRectControl.top,

e_pIplImageShow->width,

e_pIplImageShow->height,

q_CRectControl.left,

q_CRectControl.top,

e_pIplImageShow->width,

e_pIplImageShow->height,

e_pIplImageShow->imageData,

e_pBITMAPINFODisplay,

DIB_RGB_COLORS,

SRCCOPY);

}

3 运行结果

运行结果图形如下:

检测图片--圆拍摄图片--圆

4 小结

通过本次设计,让我很好的锻炼了理论联系实际,与具体项目、课题相结合开发、设计产品的能力。既让我们懂得了怎样把理论应用于实际,又让我们懂得了在实践中遇到的问题怎样用理论去解决。

在本次设计中,我们还需要大量的以前没有学到过的知识,于是图书馆和INTERNET 成了我们很好的助手。在查阅资料的过程中,我们要判断优劣、取舍相关知识,不知不觉中我们查阅资料的能力也得到了很好的锻炼。我们学习的知识是有限的,在以后的工作中我们肯定会遇到许多未知的领域,这方面的能力便会使我们受益非浅。

在设计过程中,总是遇到这样或那样的问题。有时发现一个问题的时候,需要做大量的工作,花大量的时间才能解决。自然而然,我的耐心便在其中建立起来了。为以后的工作积累了经验,增强了信心。

拍摄图片--矩形 检测图片--矩形

机器视觉检测的分析简答作业及答案要点学习资料

2012研究生机器视觉课程检测及课程设计内容 一、回答下列问题: 1、什么是机器视觉,它的目标是什么?能否画出机器视觉检测系统的结构方 块图,并说出它们的工作过程原理和与人类视觉的关系? 机器视觉是机器(通常指计算机)对图像进行自动处理并报告“图像中有什么”的过程,也就是说它识别图像中的内容。图像中的内容往往是某些机器零件,而处理的目标不仅要能对机器零件定位,还要能对其进行检验。 原始数据特征向量类别标识 特征度量模式分类器 机器视觉系统的组成框图 2、在机器视觉检测技术中:什么是点视觉技术、一维视觉技术、二维视觉技 术、三维视觉技术、运动视觉技术、彩色视觉技术、非可见光视觉技术等? 能否说出他们的应用领域病句、案例?能否描述它们的技术特点? 答:点视觉:用一个独立变量表示的视觉称之为点视觉。如应用位移传感器测量物体的移动速度。 一维视觉:普通的CCD。 两维视觉:用两个独立变量表示的视觉称之为两维视觉。比如普通的CCD。 三维视觉:用三个独立变量表示的视觉称之为三维视觉。比如用两个相机拍摄(双目视觉);或者使用一个相机和一个辅助光源。 彩色视觉:用颜色作为变量的视觉称之为彩色视觉。物体的颜色是由照 射光源的光谱成分、光线在物体上反射和吸收的情况决定的。比如,一 个蓝色物体在日光下观察呈现蓝色,是由于这个物体将日光中的蓝光 反射出来,而吸收了光谱中的其他部分的光谱,而同样的蓝色物体, 在红色的光源照射下,则呈现红紫色, 非可见光视觉技术:用非可见光作为光源的视觉技术。比如非可见光成像技术。

3、机器视觉检测技术中:光源的种类有哪些?不同光源的特点是什么?光照 方式有几种?不同光照方式的用途是什么?又和技术特点和要求? 机器视觉检测技术中光源有以下几种:荧光灯,卤素灯+光纤导管,LED 光源,激光,紫外光等。几种光源的特点如下: 成本亮度稳定度使用寿命复杂设计温度影响种类名 称 荧光灯低差差一般低一般 卤素灯+光纤导管高好一般差一般差LED光源一般一般好好高低光照方式有以下几种: 背景光法(背光照射)是将被测物置于相机和光源之间。这种照明方式的优点是可将被测物的边缘轮廓清晰地勾勒出来。由于在图像中,被测物所遮挡的部分为黑色,而未遮挡的部分为白色,因此形成“黑白分明”的易于系统分析的图像。此方法被应用于90%的测量系统中。 前景光法(正面照射)是将灯源置于被测物和相机之前。又可分为明场照射和暗场照射。明场照射是为了获得物体的几乎全部信息,照射物体的光在视野范围之内几乎全部反射回去;暗场照射是为了获取物体表面的凹凸,照射物体的光在视野范围之外有部分光反射回去。 同轴光法是将灯源置于被测物和相机之间。 4、机器视觉检测系统中,光学系统的作用是什么?光学器件有哪几种,它们 各自的作用是什么?光学镜头有几种类型,它们各自有何用途?光学镜头有哪些技术参数,各自对测量有什么影响? 答:机器视觉检测系统中,光学系统用来采集物体的轮廓、色彩等信息。 光学器件主要有:镜头、成像器件(CCD和CMOS)、光圈、快门等。 镜头的作用是对成像光线进行调焦等处理,使成像更清晰;成像器件的作用是将光学图像转换成模拟电信号;光圈的作用如同人得瞳孔, 控制入射光的入射量,实现曝光平衡;快门的作用是将想要获取的光学

机器视觉系统设计五大难点

机器视觉系统设计五大难点 机器视觉系统的组成 机器视觉系统是指用计算机来实现人的视觉功能,也就是用计算机来实现对客观的三维世界的识别。按现在的理解,人类视觉系统的感受部分是视网膜,它是一个三维采样系统。三维物体的可见部分投影到网膜上,人们按照投影到视网膜上的二维的像来对该物体进行三维理解。所谓三维理解是指对被观察对象的形状、尺寸、离开观察点的距离、质地和运动特征(方向和速度)等的理解。 机器视觉系统的输入装置可以是摄像机、转鼓等,它们都把三维的影像作为输入源,即输入计算机的就是三维管观世界的二维投影。如果把三维客观世界到二维投影像看作是一种正变换的话,则机器视觉系统所要做的是从这种二维投影图像到三维客观世界的逆变换,也就是根据这种二维投影图像去重建三维的客观世界。 机器视觉系统主要由三部分组成:图像的获取、图像的处理和分析、输出或显示。 将近80%的工业视觉系统主要用在检测方面,包括用于提高生产效率、控制生产过程中的产品质量、采集产品数据等。产品的分类和选择也集成于检测功能中。下面通过一个用于生产线上的单摄像机视觉系统,说明系统的组成及功能。 视觉系统检测生产线上的产品,决定产品是否符合质量要求,并根据结果,产生相应的信号输入上位机。图像获取设备包括光源、摄像机等;图像处理设备包括相应的软件和硬件系统;输出设备是与制造过程相连的有关系统,包括过程控制器和报警装置等。数据传输到计算机,进行分析和产品控制,若发现不合格品,则报警器告警,并将其排除出生产线。机器视觉的结果是CAQ系统的质量信息来源,也可以和CIMS其它系统集成。 图像的获取 图像的获取实际上是将被测物体的可视化图像和内在特征转换成能被计算机处理的一系列数据,它主要由三部分组成: *照明

2018年机器视觉实验报告-范文模板 (13页)

本文部分内容来自网络整理,本司不为其真实性负责,如有异议或侵权请及时联系,本司将立即删除! == 本文为word格式,下载后可方便编辑和修改! == 机器视觉实验报告 实验报告 课程名称: 班级: 姓名: 学号: 实验时间: 实验一 一.实验名称 Matlab软件的使用 二.实验内容 1.打开MATLAB软件,了解菜单栏、工具栏、状态栏、命令窗口等; 2.了解帮助文档help中演示内容demo有哪些; 3.找到工具箱类里面的Image Processing工具箱,并进行初步学习,为后续实验做准备。 三.实验原理: 通过matlab工具箱来进行图像处理 四.实验步骤 1. 双击桌面上的matlab图标,打开matlab软件 2. 了解菜单栏、工具栏、状态栏、命令窗口等

如下图1-1所示 图 1-1 3. 了解帮助文档help中演示内容demo有哪些; 步骤如下图1-2 图1-2 打开help内容demo后,里面的工具箱如图所示。 图1-3 4. 找到工具箱类里面的Image Processing工具箱,并进行初步学习,为后续实验做准备。找到并打开Image Processing工具箱,窗口如图1-4 ,图1-5所示 图 1-4 图 1-5 五.实验总结和分析 通过实验前的理论准备和老师的讲解,对matlab有了一定认识,在实验中,了解了实际操作中的步骤以及matlab中的图像处理工具箱及其功能,为后续的学习打下了基础,并把理论与实际相结合,更加深入的理解图像处理。 实验二 一.实验名称 图像的增强技术 二.实验内容 1.了解图像增强技术/方法的原理; 2.利用matlab软件,以某一用途为例,实现图像的增强; 3.通过程序的调试,初步了解图像处理命令的使用方法。 三.实验原理: 通过matlab工具箱来进行图像处理,通过输入MATLAB可以识别的语言命令来让MATLAB执行命令,实现图像的增强。

机器视觉课程设计报告

机器视觉课程设计 对圆盘形零件圆心与直径和矩形零件长与宽尺寸测量 学生学院机电学院 专业班级 学号 学生姓名 指导教师 2015年 1 月 20 日

目录 1 问题描述 (3) 1.1 基本目标 (3) 1.2 基本要求 (3) 2 程序及其算法 (3) 2.1 检测与计算圆半径的程序 (3) 2.2 检测与计算矩形长和宽的程序 (6) 2.2.1 打开摄像头程序 (6) 2.2.2 保存拍摄的照片程序 (7) 2.2.3 读取拍摄到的图片(读取文名字CurrentImage.jpg的图片) (7) 2.2.4 检测边上的点和计算长和高的函数 (8) 2.2.5 老师写的显示图片的函数 (11) 3 运行结果 (12) 4 小结 (13)

1 问题描述 1.1 基本目标 显示一张图片(包含一个矩形或一个圆),测量矩形的长宽或圆的直径。完成得及格分,扩展有加分! 要求图片 1.2 基本要求 “机器视觉”考试结果要求独立在计算机上完成,建议使用Visual C++和OpenCV 实现一个具有视觉捕捉、图像显示、尺寸测量等功能的对话框程序,其中必须完成对圆盘形零件圆心与直径和矩形零件长与宽尺寸测量内容。在教师提供的基本框架程序基础上,修改、补充界面和功能。 2 程序及其算法 2.1 检测与计算圆半径的程序 思路:从图片中间横扫取点得M_Point[0],M_Point[1](x坐标相加除2的圆心的x 坐标)中间纵向取点得M_Point[2],M_Point[3](y坐标相加除2的圆心的y坐标)圆上四个点到圆心的距离(半径)取平均值,输出为半径。

程序如下: double c_DialogTeclarn::f_MakeCircle(double e_dThreshold) { if(NULL==m_pIplImageSource) {return 0;} //定义变量存图像的宽,高,行像素 int q_iWidth=m_pIplImageSource->width; int q_iHeight=m_pIplImageSource->height; int q_iWidthStep=m_pIplImageSource->widthStep; uchar *q_pchDataImage=(uchar *)m_pIplImageSource->imageData; CvPoint M_Point[4]={};//存放检索出的四个点 循环检索 //01纵扫 for(int Cycle_Y=1;Cycle_Yq_pchDataImage[q_iWidth/2+q_iWidthStep*(Cycle_Y-1)]) { M_Point[0].x=q_iWidth/2; M_Point[0].y=Cycle_Y; } 显示图片

机器视觉基础知识详解

机器视觉基础知识详解 随着工业4.0时代的到来,机器视觉在智能制造业领域的作用越来越重要,为了能让更多用户获取机器视觉的相关基础知识,包括机器视觉技术是如何工作的、它为什么是实现流程自动化和质量改进的正确选择等。小编为你准备了这篇机器视觉入门学习资料。 机器视觉是一门学科技术,广泛应用于生产制造检测等工业领域,用来保证产品质量,控制生产流程,感知环境等。机器视觉系统是将被摄取目标转换成图像信号,传送给专用的图像处理系统,根据像素分布和亮度、颜色等信息,转变成数字化信号;图像系统对这些信号进行各种运算来抽取目标的特征,进而根据判别的结果来控制现场的设备动作。 机器视觉优势:机器视觉系统具有高效率、高度自动化的特点,可以实现很高的分辨率精度与速度。机器视觉系统与被检测对象无接触,安全可靠。人工检测与机器视觉自动检测的主要区别有:

为了更好地理解机器视觉,下面,我们来介绍在具体应用中的几种案例。 案例一:机器人+视觉自动上下料定位的应用: 现场有两个振动盘,振动盘1作用是把玩偶振动到振动盘2中,振动盘2作用是把玩偶从反面振动为正面。该应用采用了深圳视觉龙公司VD200视觉定位系统,该系统通过判断玩偶正反面,把玩偶处于正面的坐标值通过串口发送给机器人,机器人收到坐标后运动抓取产品,当振动盘中有很多玩偶处于反面时,VD200视觉定位系统需判断反面玩偶数量,当反面玩偶数量过多时,VD200视觉系统发送指令给振动盘2把反面玩偶振成正面。 该定位系统通过玩偶表面的小孔来判断玩偶是否处于正面,计算出玩偶中心点坐标,发送给机器人。通过VD200视觉定位系统实现自动上料,大大减少人工成本,大幅提高生产效率。 案例二:视觉检测在电子元件的应用: 此产品为电子产品的按钮部件,产品来料为料带模式,料带上面为双排产品。通过对每个元器件定位后,使用斑点工具检测产品固定区域的灰度值,来判断此区域有无缺胶情况。 该应用采用了深圳视觉龙公司的DragonVision视觉系统方案,使用两个相机及光源配合机械设备,达到每次检测双面8个产品,每分钟检测大约1500个。当出现产品不良时,立刻报警停机,保证了产品的合格率和设备的正常运行,提高生产效率。

机器视觉系统模块的原理分析及设计

机器视觉系统模块的原理分析及设计 一、概述 视觉技术是近几十年来发展的一门新兴技术。机器视觉可以代替人类的视觉从事检验、目标跟踪、机器人导向等方面的工作,特别是在那些需要重复、迅速的从图象中获取精确信息的场合。尽管在目前硬件和软件技术条件下,机器视觉功能还处于初级水平,但其潜在的应用价值引起了世界各国的高度重视,发达国家如美国、日本、德国、法国等都投入了大量的人力物力进行研究,近年来已经在机器视觉的某些方面获得了突破性的进展,机器视觉在车辆安全技术、自动化技术等应用中也越来越显示出其重要价值。本文根据最新的CMOS 图像采集芯片设计了一种通用的视觉系统模块,经过编制不同的图像处理、模式识别算法程序本模块可以应用到足球机器人,无人车辆等各种场合。 二、设计原理 系统原理框图如图1所示。 系统包含5个主要芯片:图像采集芯片OV7620,高速微处理器SH4,大规模可编程阵列FPGA,和串口通讯控制芯片MAX232。FPGA内部编程设立两个双口RAM,产生图像传感器所需的点频,行场同步等信号,以及控制双口RAM的存储时序。SH4负责对OV7620通过I2C进行配置,读取双口RAM的图像数据,进行处理,并通过串口实现图像资料的上传或控制步进电机等其他设备。 三、图像采集模块 系统模块以CMOS图像传感器OV7620为核心,还包括一个聚光镜头和其他一些辅助

元器件比如27MHZ的晶振,电阻电容等。 COMS图像传感器是近几年发展较快的新型图像传感器,由于采用了相同COMS技术,因此可以将像素阵列与外围支持电路集成在同一块芯片上,是一个完整的图像系统(Camera on Chip)。本系统采用的是Ommnvision公司推出的一块CMOS彩色图像传感器OV7620,分辨率为640x480。它能工作在逐行扫描方式下,也能工作在隔行扫描方式下。它不仅能输出彩色图像,也可用作黑白图像传感器。这块芯片支持的图像输出格式有很多种: 1)YCrCb4:2:2 16 bit/8 bit格式;2)ZV端口输出格式;3)RGB原始数据16 bit/8 bit; 4)CCIR601/CCIR656格式。其功能包括有对比度、亮度、饱和度、白平衡及自动曝光、同步信号位置及极性输出,帧速率和输出格式等都可以通过I2C 总线进行编程配置片内寄存器控制。 聚光镜头选用桑来斯公司生产的DSL103镜头。此镜头体积小,适合嵌入式视觉传感器的应用场合。 四、FPGA接口模块 FPGA采用Xilinx公司的XC2S100,这款芯片内部集成了10000个逻辑门。接口程序采用VHDL(Very High Speed Integrated Circuit Hardware Description Language)书写。为了提高数据的传输速率,在XC2S100 内部分配了2个双口RAM缓冲区,其大小为127KB,每个双口RAM存储1行的图像数据。两组双口RAM进行奇偶行计数器进行切换。当一行存储完毕后,立即向SH4传生一个读取该行数据的中断的申请信号。FPGA内部结构如图2所示。 这里主要问题在于FPGA内部的双口RAM读写操作共用同一数据总线和地址总线,当同时进行读写操作的时候就会产生时序问题导致写入或读出的数据错误。在这两个过程中为了防止数据和地址总线冲突,在FPGA内部设计了一个中央总线仲裁器。根据公共数据传输的先后顺序,中央仲裁器先接受图像传感器的总线请求,当图像存储到RAM之中后,中央仲裁器才响应单片机系统的读信号请求。

二维影像测量仪实验报告

一、实验目的 采用影像测量仪验收印刷电路板。 要求: (1)学习并掌握影像测量仪的构成和工作原理; (2)通过实践,掌握影像测量仪的操作使用,包括仪器的调节、标定、瞄准、测量;(3)掌握仪器软件的使用,测量数据采集,数据处理,误差评定; (4)采用投射/反射照明测量,测量印刷电路板,要求测量BGA封装(至少测量10个焊盘)焊盘的尺寸、焊盘间距;至少测量十条引线的线宽和间距;至少测量10 个过孔的尺寸。 (5)对照设计图纸,给出合格性结论,形成测量报告。 (6)撰写实验报告,包括原理、步骤、数据与处理、结论等。 二、影像测量仪的构成和工作原理 (1)构成 影像测量仪是一种由高解析度CCD彩色镜头、连续变倍物镜、彩色显示器、视频十字线显示器、精密光栅尺、多功能数据处理器、数据测量软件与高精密工作台结构组成的高精度光学影像测量仪器。 图1总体结构

加工定制:否分辨率:0.001(mm)测量行程:250*150*200(mm) 品牌:贵阳新天型号:JVB250 放大倍率:光学0.7-4.5X 影像28-180X 操作方式:手动测量精度:(3+L/200)um 外形尺寸(长*宽*高):1000*650*1650(mm) JVB250的规格参数: ①测量范围: X坐标: 250mm Y坐标: 150mm 调焦行程: Z坐标: 200mm ②X、Y、坐标分辨率: 0.0005mm ③仪器准确度:(3+L/200)μm 其中L为被测长度,单位mm ④CCD摄像机:1/3″彩色摄像机,象素数:795(H)×596(V) ⑤物镜放大率: 0.7 ~ 4.5×连续变倍,影像放大28~ 180倍。 ⑥与放大率对应的物镜工作距离:75mm~90mm ⑦与放大率对应的物面最大高度:150mm~130mm ⑧工作台承重:30kg ⑨金属工作台尺:450mm×300mm ⑩主机外形尺寸:580mm×750mm×660mm (2)工作原理 影像测量仪是基于机器视觉的自动边缘提取、自动理匹、自动对焦、测量合成、影像合成等人工智能技术,具有点哪走哪自动测量、CNC走位自动测量、自动学习批量测量的功能,影像地图目标指引,全视场鹰眼放大等优异的功能。同时,基于机器视觉与微米精确控制下的自动对焦过程,可以满足清晰影像下辅助测量需要,亦可加入触点测头完成坐标测量。支持空间坐标旋转的优异软件性能,可在工件随意放置或使用夹具的情况下进行批量测量与SPC结果分类。 被测工件置于工作台上,在投射或反射光照明下,工件影像被摄像头摄取并传送到计算机,此时可使用软件的影像、测量等功能,配合对工作台的坐标采集,对工件进行点、线、面全方位测量。 影像测量仪是利用表面光或轮廓光照明后,经变焦距物镜通过摄像镜头,摄取影像再通过S端子传送到电脑屏幕上,然后以十字线发生器在显示器上产生的视频十字线为基准对被测物进行瞄准测量。并通过工作台带动光学尺,在X、Y方向上移动由DC-3000多功能数据处理器进行数据处理,通过软件进行演算完成测量工作。影像测量主要是利

物联网系统课程设计方案

物联网系统课程设计 学系名称:物联网工程 班级名称:物联网工程 2 班 学生姓名:朱泓锦 20136239 指导教师:肖迎元助教: 二零一六年十月

摘要 智能车辆是集环境感知、规划决策、多等级辅助驾驶等功能于一体的综合系统,是智能交通系统的一个重要组成部分。它在军事、民用、太空开发等领域有着广泛的应用前景。随着电子工业的发展,智能技术广泛运用于各种领域,运用于智能家居中的产品更是越来越受到人们的青睐。 以arduino程序和蓝牙模组,app为基础,是蓝牙模组,arduino 小车和手机之间信息交互的关键。本课题所研究的物联网应用系统以arduino程序为核心,利用蓝牙模组,arduino小车和app等实现基本功能。 基本功能:利用蓝牙模组和app之间的信息交互,控制小车的移动,从而达到无线控制的效果 注:仅能实现小车的基本操作 关键词:arduino程序,arduino小车,app,蓝牙模组

1 绪论 随着科技进步,现代工业技术发展越来越体现出机电一体化的特征。无论是在金属加工、汽车技术、工业生产等等方面,机器设备表现了所谓智能化、集成化、小型化、高精度化的发展趋势。 1.1 选题背景 随着汽车工业的迅速发展,关于汽车的研究也就越来越受人关注。全国电子大赛和省内电子大赛几乎每次都有智能小车这方面的题目,全国各高校也都很重视该题目的研究。可见其研究意义很大。本设计就是在这样的背景下提出的,指导教师已经有充分的准备。本题目是结合科研项目而确定的设计类课题。设计的智能电动小车应该能够实现适应能力,能自动避障,可以智能规划路径。 智能化作为现代社会的新产物,是以后的发展方向,他可以按照预先设定的模式在一个特定的环境里自动的运作,无需人为管理,便可以完成预期所要达到的或是更高的目标。同遥控小车不同,遥控小车需要人为控制转向、启停和进退,比较先进的遥控车还能控制器速度。常见的模型小车,都属于这类遥控车;智能小车,则可以通过计算机编程来实现其对行驶方向、启停以及速度的控制,无需人工干预。操作员可以通过修改智能小车的计算机程序来改变它的行驶方向。因此,智能小车具有再编程的特性,是机器人的一种。 中国自1978年把“智能模拟”作为国家科学技术发展规划的主要研究课题,开始着力研究智能化。从概念的引进到实验室研究的实现,再到现在高端领域(航

嵌入式机器视觉系统设计

嵌入式机器视觉系统设计 熊 超 田小芳 陆起涌 (复旦大学电子工程系 上海 200433) 摘要 机器视觉系统是智能机器人的一个重要标志,也是近年来的一个研究热点,现有研究成果在系统复杂度、价格和性能之间很难达到平衡。针对此问题,设计了一个CM O S摄像头为图像采集设备、DM CU为核心处理器的嵌入式机器视觉系统,并实现了实时双目测距。该系统简单、实时性好。 关键词 嵌入式系统 DM CU 机器视觉 双目测距 The Design of Embedded Machine Vision System Xiong Chao Tian Xiaofang Lu Qiyo ng (E.E.D ep ar tment,F udan U niv er sity,Shanghai200433,China) Abstract M achine vision is an act ive research area in recent years,which is an import ant symbol of intelligent robot,but t he present research product ion has not f ound a balance among the system complexit y,cost and per-formance.T o solve the problem,a new embedded machine vision system is proposed,which t akes t he CM OS sense as the image acquisit ion unit and DM CU as cent ral processor,and real-time depth measurement is realized. T he system is simple and st able,and has a good perf ormance in real-time operation. Key words Embedded syst em DM CU M achine vision Binocular dept h measurement 1 引 言 机器视觉系统是智能机器人的一个重要标志,其模拟了人的感知功能,具有探测范围宽、目标信息完整等优势,因此越来越受到人们的关注。其中,机器视觉测量障碍物距离是近年来的研究热点,并取得了一定的效果[1~3]。但这些视觉测距系统往往比较复杂、价格高,或者实时性差。在此设计了一个以CM OS摄像模块为图像采集设备、DM CU为核心处理器的嵌入式机器视觉系统,并实现了双目视觉实时测距。该系统集成度高、功耗低、实时性好,还有丰富的外围接口,可以广泛应用于智能机器人导航、目标定位等领域。 2 嵌入式系统设计 系统采用的摄像模块为台湾原相公司的CM OS 图像传感器PAS109B,工作电压2.4~3.6V,分辨率164×124,像素大小7.25 m×7.25 m,图像帧率最高60fps(frame per second),支持I2C接口。处理器采用台湾俊亿公司提供的DM CU处理器KBD0001B。DM-CU是为了适应现代便携设备发展而出现的一种全新体系结构,整合了DSP高效的运算能力和M CU强大的控制能力。K BD0001B字长16位,内部有RO M 32kW,有两种RA M:XRA M(16kW)和YRA M (8kW),可在一个时钟周期内分别从这两个RA M中得到两个操作数。K BD0001B运算速度最高可达25M IPS,采用了4级流水线结构,每条指令执行时间均为一个时钟周期。K BD0001B提供48个通用I/O接口,支持SPI、I2C、U A RT、PWM,内嵌了LCD控制器。 这里设计的机器视觉系统以K BD0001B为核心处理器,CM OS摄像模块为图像采集设备,大大降低该系统的复杂度。将该系统安装于一个移动小车上,通过双目视觉的方法测量障碍物的距离,实现了小车自主行驶和避障,如图1所示。 嵌入式机器视觉系统框图如图2所示。 为实时地测量障碍物距离,系统利用外极线约束[4]重整图像,这样每次只需分别从两图像传感器中 第26卷第8期增刊 仪 器 仪 表 学 报 2005年8月

2013数字图像处理课程设计报告

数字图像处理 课程设计报告 课设题目:彩色图像增强软件学院:信息科学与工程学院专业:电子与信息工程 班级: 1002501 姓名:曾小路 学号: 100250131 指导教师:赵占峰 哈尔滨工业大学(威海) 2013 年12月27日

目录 目录 .......................................................................................................................... I 一. 课程设计任务 (1) 二. 课程设计原理及设计方案 (2) 2.1 彩色图像基础 (2) 2.2 彩色模型 (2) 三. 课程设计的步骤和结果 (6) 3.1 采集图像 (6) 3.2 图像增强 (7) 3.3 界面设计 (9) 四. 课程设计总结 (12) 五. 设计体会 (13) 六. 参考文献 (14)

哈尔滨工业大学(威海)课程设计报告 一. 课程设计任务 1.1设计内容及要求: (1)、独立设计方案,根据所学知识,对由于曝光过度、光圈过小或图像亮度不均匀等情况下的彩色图像进行增强,提高图像的清晰度(通俗地讲,就是图像看起来干净、对比度高、颜色鲜艳)。 (2)、参考photoshop 软件,设计软件界面,对处理前后的图像以及直方图等进行对比显示; (3)、将实验结果与处理前的图像进行比较、分析。总结设计过程所遇到的问题。 1.2参考方案 1、实现图像处理的基本操作 学习使用matlab 图像处理工具箱,利用imread()语句读入图像,例如image=imread(flower.jpg),利用彩色图像模型转换公式,将RGB 类型图像转换为HSI 类型图像,显示各分量图像(如imshow(image)),以及计算和显示各分量图像直方图。 2、彩色图像增强实现 对HSI彩色模型图像的I分量进行对比度拉伸或直方图均衡化等处理,提高亮度图像的对比度。对S分量图像进行适当调整,使图像色彩鲜艳或柔和。 H 分量保持不变。将处理后的图像转换成RGB 类型图像,并进行显示。分析处理图像过程和结果存在的问题。 3、参照“photoshop”软件,设计图像处理软件界面 可设计菜单式界面,在功能较少的情况下,也可以设计按键式界面,视 功能多少而定;参考matlab 软件中GUI 设计,学习软件界面的设计 - 1 -

物联网系统课程设计..

, 物联网系统课程设计 学系名称:物联网工程 班级名称:物联网工程 2 班 ) 学生姓名:朱泓锦 指导教师:肖迎元助教: 二零一六年十月 ;

摘要 $ 智能车辆是集环境感知、规划决策、多等级辅助驾驶等功能于一体的综合系统,是智能交通系统的一个重要组成部分。它在军事、民用、太空开发等领域有着广泛的应用前景。随着电子工业的发展,智能技术广泛运用于各种领域,运用于智能家居中的产品更是越来越受到人们的青睐。 以arduino程序和蓝牙模组,app为基础,是蓝牙模组,arduino小车和手机之间信息交互的关键。本课题所研究的物联网应用系统以arduino 程序为核心,利用蓝牙模组,arduino小车和app等实现基本功能。 基本功能:利用蓝牙模组和app之间的信息交互,控制小车的移动,从而达到无线控制的效果 注:仅能实现小车的基本操作 关键词:arduino程序,arduino小车,app,蓝牙模组 —

】 1 绪论 随着科技进步,现代工业技术发展越来越体现出机电一体化的特征。无论是在金属加工、汽车技术、工业生产等等方面,机器设备表现了所谓智能化、集成化、小型化、高精度化的发展趋势。 选题背景 ' 随着汽车工业的迅速发展,关于汽车的研究也就越来越受人关注。全国电子大赛和省内电子大赛几乎每次都有智能小车这方面的题目,全国各高校也都很重视该题目的研究。可见其研究意义很大。本设计就是在这样的背景下提出的,指导教师已经有充分的准备。本题目是结合科研项目而确定的设计类课题。设计的智能电动小车应该能够实现适应能力,能自动避障,可以智能规划路径。 智能化作为现代社会的新产物,是以后的发展方向,他可以按照预先设定的模式在一个特定的环境里自动的运作,无需人为管理,便可以完成预期所要达到的或是更高的目标。同遥控小车不同,遥控小车需要人为控制转向、启停和进退,比较先进的遥控车还能控制器速度。常见的模型小车,都属于这类遥控车;智能小车,则可以通过计算机编程来实现其对行驶方向、启停以及速度的控制,无需人工干预。操作员可以通过修改智能小车的计算机程序来改变它的行驶方向。因此,智能小车具有再编程的特性,是机器人的一种。

机器视觉课后心得体会

. ;.. 经过机器视觉技术及应用这门课程的学习,我觉得受益匪浅。可以说这门课 程更偏重于实践,也很好的锻炼了我们,老师讲课很认真,ppT准备的很详细,对于一些关键问题的讲解更是深入浅出。机器视觉技术,即采用机器代替人眼来做测量和判断。机器视觉系统是指通过机器视觉产品即图像摄取装置,分CMOS 和CCD两种把图像抓取到,然后将该图像传送至处理单元,通过数字化处理,根据像素分布和亮度、颜色等信息,来进行尺寸、形状、颜色等的判别,进而根据判别的结果来控制现场的设备动作。机器视觉主要用计算机来模拟人的视觉功能,但并不仅仅是人眼的简单延伸,更重要的是具有人脑的一部分功能一一从客观事物的图像中提取信息,进行处理并加以理解,最终用于实际检测、测量和控制。 机器视觉不同于计算机视觉,它涉及图像处理、人工智能和模式识别,机器视觉是将计算机视觉应用于工业自动化。 目前在机器视觉系统中;CCD 摄像机以其体积小巧、性能可靠、清晰度高等优点得到了广泛使用。机器视觉伴随计算机技术、现场总线技术的发展,技术日臻成熟,已是现代加工制造业不可或缺的产品,广泛应用于食品和饮料、化妆品、制药、建材和化工、金属加工、电子制造、包装、汽车制造等行业。在未来的几年内,随着中国加工制造业的发展,对于机器视觉的需求也逐渐增多;随着机器视觉产品的增多,技术的提高,国内机器视觉的应用状况将由初期的低端转向高端。加之机器视觉的介入,自动化将朝着更智能、更快速的方向发展。 通过本课程的学习,我们掌握了一些机器视觉方面的基本知识。这门课对于我们生活方面有很大的实用性,可以让我们了解到机器视觉的基本构造,对成为技术应用型人才,适应社会和培养实践能力与技能都起到了很大的作用。这样的学习让我们将知识更灵活的运用,更好的将知识和实践结合在一起并转化为技能。 通过这门课程的学习,我们懂得更多,收获更多,提升了自身操作能力的同时又学到了很多东西,我相信在以后的课堂学习和实践学习中可以掌握更多更深入的知识,不断的提高自身的学习与应用能力。

机器视觉课后心得体会

经过机器视觉技术及应用这门课程的学习,我觉得受益匪浅。可以说这门课程更偏重于实践,也很好的锻炼了我们,老师讲课很认真,ppT准备的很详细,对于一些关键问题的讲解更是深入浅出。机器视觉技术,即采用机器代替人眼来做测量和判断。机器视觉系统是指通过机器视觉产品即图像摄取装置,分CMOS 和CCD两种把图像抓取到,然后将该图像传送至处理单元,通过数字化处理,根据像素分布和亮度、颜色等信息,来进行尺寸、形状、颜色等的判别,进而根据判别的结果来控制现场的设备动作。机器视觉主要用计算机来模拟人的视觉功能,但并不仅仅是人眼的简单延伸,更重要的是具有人脑的一部分功能一一从客观事物的图像中提取信息,进行处理并加以理解,最终用于实际检测、测量和控制。 机器视觉不同于计算机视觉,它涉及图像处理、人工智能和模式识别,机器视觉是将计算机视觉应用于工业自动化。 目前在机器视觉系统中;CCD 摄像机以其体积小巧、性能可靠、清晰度高等优点得到了广泛使用。机器视觉伴随计算机技术、现场总线技术的发展,技术日臻成熟,已是现代加工制造业不可或缺的产品,广泛应用于食品和饮料、化妆品、制药、建材和化工、金属加工、电子制造、包装、汽车制造等行业。在未来的几年内,随着中国加工制造业的发展,对于机器视觉的需求也逐渐增多;随着机器视觉产品的增多,技术的提高,国内机器视觉的应用状况将由初期的低端转向高端。加之机器视觉的介入,自动化将朝着更智能、更快速的方向发展。 通过本课程的学习,我们掌握了一些机器视觉方面的基本知识。这门课对于我们生活方面有很大的实用性,可以让我们了解到机器视觉的基本构造,对成为技术应用型人才,适应社会和培养实践能力与技能都起到了很大的作用。这样的学习让我们将知识更灵活的运用,更好的将知识和实践结合在一起并转化为技能。 通过这门课程的学习,我们懂得更多,收获更多,提升了自身操作能力的同时又学到了很多东西,我相信在以后的课堂学习和实践学习中可以掌握更多更深入的知识,不断的提高自身的学习与应用能力。

机器视觉系统设计五大难点【详解】

机器视觉系统设计五大难点 内容来源网络,由“深圳机械展(11万㎡,1100多家展商,超10万观众)”收集整理! 更多cnc加工中心、车铣磨钻床、线切割、数控刀具工具、工业机器人、非标自动化、数字化无人工厂、精密测量、数控系统、3D打印、激光切割、钣金冲压折弯、精密零件加工等展示,就在深圳机械展. 机器视觉系统的组成 机器视觉系统是指用计算机来实现人的视觉功能,也就是用计算机来实现对客观的三维世界的识别。按现在的理解,人类视觉系统的感受部分是视网膜,它是一个三维采样系统。三维物体的可见部分投影到网膜上,人们按照投影到视网膜上的二维的像来对该物体进行三维理解。所谓三维理解是指对被观察对象的形状、尺寸、离开观察点的距离、质地和运动特征(方向和速度)等的理解。 机器视觉系统的输入装置可以是摄像机、转鼓等,它们都把三维的影像作为输入源,即输入计算机的就是三维管观世界的二维投影。如果把三维客观世界到二维投影像看作是一种正变换的话,则机器视觉系统所要做的是从这种二维投影图像到三维客观世界的逆变换,也就是根据这种二维投影图像去重建三维的客观世界。 机器视觉系统主要由三部分组成:图像的获取、图像的处理和分析、输出或显示。 近80%的工业视觉系统主要用在检测方面,包括用于提高生产效率、控制生产过程中的产品质量、采集产品数据等。产品的分类和选择也集成于检测功能中。下面通过一个用于生产线上的单摄像机视觉系统,说明系统的组成及功能。 视觉系统检测生产线上的产品,决定产品是否符合质量要求,并根据结果,产生相应的信号输入上位机。图像获取设备包括光源、摄像机等;图像处理设备包括相应的

软件和硬件系统;输出设备是与制造过程相连的有关系统,包括过程控制器和报警装置等。数据传输到计算机,进行分析和产品控制,若发现不合格品,则报警器告警,并将其排除出生产线。机器视觉的结果是CAQ系统的质量信息来源,也可以和CIMS 其它系统集成。 图像的获取 图像的获取实际上是将被测物体的可视化图像和内在特征转换成能被计算机处理的一系列数据,它主要由三部分组成: *照明 *图像聚焦形成 *图像确定和形成摄像机输出信号 1、照明 照明和影响机器视觉系统输入的重要因素,因为它直接影响输入数据的质量和至少30%的应用效果。由于没有通用的机器视觉照明设备,所以针对每个特定的应用实例,要选择相应的照明装置,以达到最佳效果。 过去,许多工业用的机器视觉系统用可见光作为光源,这主要是因为可见光容易获得,价格低,并且便于操作。常用的几种可见光源是白帜灯、日光灯、水银灯和钠光灯。但是,这些光源的一个最大缺点是光能不能保持稳定。以日光灯为例,在使用的第一个100小时内,光能将下降15%,随着使用时间的增加,光能将不断下降。因此,如何使光能在一定的程度上保持稳定,是实用化过程中急需要解决的问题。 另一个方面,环境光将改变这些光源照射到物体上的总光能,使输出的图像数据存在噪声,一般采用加防护屏的方法,减少环境光的影响。

机器视觉与智能检测创新实践

《机器视觉与智能检测创新实践》课程设计报告 题目:基于可见光红外光图像的处理 班级: 姓名: 学号: 指导老师: 日期:

一、实验目的 机器视觉就是用机器代替人眼来做测量和判断。机器视觉系统是指通过机器视觉产品(即图像摄取装置,分CMOS和CCD两种)将被摄取目标转换成图像信号,传送给专用的图像处理系统,根据像素分布和亮度、颜色等信息,转变成数字化信号;图像系统对这些信号进行各种运算来抽取目标的特征,进而根据判别的结果来控制现场的设备动作。本实验的目的就是通过学生自身动手实验,使学生对机器视觉系统及图像处理有一定的认识。同时加深学生的动手能力和培养学生的创新能力。 二、实验设备 机器视觉实验平台,计算机,Matlab软件等 三、实验任务 (1)对采集的近红外图像进行增强、分割和细化(自己挑选成像效果较好的手背或手掌的近红外图像) 1、了解增强、分割和细化等处理的概念和效果并编程实现增强、分割和细化; 2、分别比较不同增强、分割和细化方法的优劣 (2)对采集到的可见光手掌图像进行分割得到手掌及手指的轮廓。

四、相关概念介绍 1、光谱 光谱是复色光经过色散系统(如棱镜、光栅)分光后,被色散开的单色光按波长(或频率)大小而依次排列的图案,如图1所示。 光波是由原子内部运动的电子产生的。各种物质的原子内部电子的运动情况不同,所以它们发射的光波也不同。研究不同物质的发光和吸收光的情况,有重要的理论和实际意义,已成为一门专门的学科——光谱学。 图1 可见光的光谱图 种类:发射光谱物体发光直接产生的光谱叫做发射光谱。发射光谱有两种类型:连续光谱和明线光谱。 连续分布的包含有从红光到紫光各种色光的光谱叫做连续光谱。炽热的固体、液体和高压气体的发射光谱是连续光谱。例如电灯丝发出的光、炽热的钢水发出的光都形成连续光谱。 只含有一些不连续的亮线的光谱叫做明线光谱。明线光谱中的亮线叫做谱线,各条谱线对应于不同波长的光。稀薄气体或金属的蒸气的发射光谱是明线光谱。明线光谱是由游离状态的原子发射的,所以也叫原子光谱。

虚拟仪器课程设计题目要求2016

一、数据采集与仪器控制类课题 1 基于热电偶温度传感器的温度测量系统卓景军 (1)基于BNC 2120实验箱的热电偶温度传感器实现温度采集; (2)数据超上、下限报警和次数的分别统计; (3)参数设置需具有运行中可调功能; (4)数据可定时和定量(模式可选)存挡(txt和Excel格式,单文件存储),数据文件回放到数据表格和波形实时显示窗口; (5)测量过程可网上浏览。 2 基于声卡的声级计设计董秋怡 (1)音频信号数据采集格式在面板上可选;数据采集速率在面板上可调; (2)采集的音频信号可显示在面板上; (3)参数设置需具有运行中可调功能; (4)测量输入音频信号的声级大小,以数据和曲线方式显示测量结果; (5)音频数据的多次记录和回放。 3 基于声卡的虚拟仪器示波器设计钟郑瑰 (1)从声卡采集数据,并实时在面板上显示数据和波形曲线; (2)能分析测量数据(如平均值、波峰值、频率等); (3)可以实时地调节示波器的各种输入参数(扫描速率、量程等); (4)数据可以多次保存于数据文件中,并可回放数据文件中的数据波形; (5)测量过程可网上浏览(以单首歌曲为例) 4 基于声卡的声音信号分析仪刘嘉诚 (1)数据采集格式和速率在面板上实时可调节; (2)能对采集到的声音信号进行平均值和功率谱等分析; (3)采集的数据定时和定量地多次写成磁盘文件(允许多文件或记录时间始末的单文件),并可以回放; (4)测量过程可网上浏览。 5 基于数据采集卡的虚拟仪器示波器设计孙铭涛 (1)从DAQ6221卡(及BNC2120实验盒)采集(模拟信号)数据,并实时在面板上显示数据和波形曲线; (2)能分析测量数据(如平均值、波峰值、频率等); (3)可以实时地调节示波器的各种输入参数(扫描速率、量程等); (4)数据可以多次地随时保存和定时保存,可回放数据文件中的数据波形; (5)测量过程可网上浏览。_不做要求。 6 基于数据采集卡的信号分析仪李土权 (1)数据采集速率和采样数在面板上可调节; (2)能对采集到的进行信号平均值、频率、幅度和功率谱等分析; (3)采集的数据定时和定量地多次写成磁盘文件,并可以回放; (4)数据可以多次地随时保存和定时保存,可回放数据文件中的数据波形; (5)测量过程可网上浏览。 7 信号发生器程序设计 (1)函数信号发生器程序设计; (2)公式波形发生程序设计; (3)数据采集程序设计(验证信号输出的状况)。

机器视觉教学大纲

《机器视觉》教学大纲 (一)课程基本信息 1. 课程代码:20136219 2. 课程名称(中文/英文):机器视觉 / Machine Vision 3. 课程类别:专业方向课 4. 课程学分: 2.0 5. 课程学时:32学时(其中,授课学时:32学时) 6. 开课单位:信息科学与工程学院 7. 教学对象:电子信息工程、通信工程 (二)课程简介 “机器视觉”是电子信息工程、通信工程的专业方向课,是专业理论课信号与系统、数 字信号处理在图像、视频处理领域偏重应用实践的课程。通过学习,使学生掌握机器视觉的基本方法,熟悉实际应用中使用较为广泛的视觉问题求解算法,了解机器视觉在各个领域的 相关应用。 先修课程:线性代数,信号与系统,数字信号处理,C语言程序设计 (三)课程教学目标和能力要求 “机器视觉”课程以机器视觉的基本算法为基础,通过具体的视觉问题为例讲解机器视 觉问题的一般求解方法。通过学习,使学生能使用图像空间滤波、频域变换、特征点检测、 图像匹配与几何映射等机器视觉的基本方法,掌握简单机器视觉问题的求解方法。培养学生将文献转换为实际工程实现的能力,使学生能够将现有的方法转换成自己的工具。培养学生工程实践能力和创新能力。为毕业就业培养专业素养,提供技术准备。 (四)课程教学方法 根据学生特点和课程特点,采用理论教学结合实际问题分析的方法。课堂教学部分遵从分知识点循序渐进的原则,主要以启发式教学和实例教学法为主,激发学生的学习兴趣。课程设置针对性的课程项目,通过实际应用,提高学生的实践能力,加深学生对知识点的掌握。通过设置小组合作形式的课程设计,提高学生的团队协作能力。 (五)课程内容及教学安排 教学主题1:机器视觉导论(2 学时) [知识点]:机器视觉概念,视觉理论的发展,机器视觉与相关研究领域,机器视觉的 应用 [重点]:掌握机器视觉的概念,理解计算视觉理论 [难点]:Marr的计算视觉理论 1 / 4

相关主题
文本预览
相关文档 最新文档