obj = videoinput('winvideo',1,'YUY2_640x480');调用视屏摄像头
set(obj,'TriggerRepeat',Inf);设置参数
set(obj,'FramesPerTrigger',1); 设置参数
objres=get(obj, 'VideoResolution');
nBands = get(obj, 'NumberOfBands');
axes(handles.axes1);在GUI中的模板(1)里显示
hImage = image( zeros(objres(2), objres(1), nBands) );
preview(obj,hImage);显示出视频
frame = getsnapshot(obj);
a=ycbcr2rgb(frame);
str=['capture' num2str(numofshot),'.jpg']; imwrite(a,str,'jpg');
numofshot=numofshot+1;
axes(handles.axes2); 在GUI中的模板(2)里显示
imshow(a); 拍照显示
3.3 本章小结
本章主要研究了机器视觉单元设计的基本原理和实现的几个步骤,即图像获取等部分。
详细介绍了机器视觉单元技术原理,具体获得图像和处理图像的步骤,以及最后介绍了机器视觉单元系统硬件软件实验环境和实验结论。
4 机器视觉单元图像处理基础
图像处理着重强调图像之间进行的变换,通常泛指各种图像技术。一般情况下,成像系统获取的图像(即原始图像)由于受到种种条件限制和随机干扰,往往不能在视觉系统中直接使用,必须在视觉的早期阶段对原始图像进行灰度校正、噪声过滤等图像预处理。对机器视觉系统来说,所有的图像预处理方法并不考虑图像降质原因,只将图像中感兴趣的特征有选择的突出,衰减其不需要的特征,故预处理后的输出图像并不需要去逼近原图像。
图像预处理包括很多方面,如直方图、各种滤波技术、图像增强等。本系统涉及的主要方面包括灰化、二值化、中值滤波、轮廓提取等。以下是对数字图像从形成到处理的描述。
4.1 数字图像的形成
4.1.1 概述
一般的图像都是模拟图像,即图像上的信息是连续变化的模拟量。如一幅黑白灰度照片上的物体是通过照片上各点的光的强度不同而体现的,而照片上的光强是一个连续变化的量,也就是说,在一定的范围内,光强的任何值都可能出现。对于这种模拟图像只能采用模拟处理方式进行处理,例如按光学原理用透镜将照片放大。计算机不能接受和处理模拟信号,只有将连续的模拟信号变换为离散的数字信号,或者说将模拟图像变换为数字图像方能接受。为此,常将计算机图像处理称作为数字图像处理。图像的数字化过程通过采样和量化两步完成。
图4.1.1.1图像具体数字化过程(正方形网格)
具体来说,就是在成像过程中把一幅图画分割成如上图所示的一个个小区(像元或像素),并将各小区灰度用整数来表示,这样使形成一幅数字图像。小区域的位置和灰度称为像素的属性。把图像分割成像素的方法可以是多种多样的,如下图所示。即每个像素所占小区域可以是正方形的,优尔角形的或三角形12的。与之相对应的像素所构成的点阵则分别为正方形网格、正三角形网格与正优尔角形网格。上述各像素分割方案中,正方形网格点阵是实际常用的像素分割方案。主要由于其像素网格点阵规范,易于在图像输入/输出设备上实现,从而被绝大多数图像采集、处理系统所采用。
图4.1.1.2 图像像素分割方法
4.1.2采样
采样就是把在时间上和空间上连续的图像转换成为离散的采样点(即像素)集的一种操作。由于图像是一种二文分布的信息,为要对它完成抽样操作,就需要先将二文信号变为一文信号,再对一文信号完成抽样。具体做法是,先沿垂直方向,按一定间隔以上到下顺序地沿水平方向直线扫描的方式,取出各水平行上浓淡(灰度)值的一文扫描线。而后再对该一文扫描线信号按一定间隔抽样得到离散信号。即先沿垂直方向抽样,再沿水平方向采样两步完成抽样操作。若采样结果每行(即横向)像素为 M 个,每列(即纵向)像素为 N 个,由整幅图像大小为 M×N 个像素。 Matlab生产自动化实验系统机器视觉单元设计+CAD图纸(8):http://www.youerw.com/zidonghua/lunwen_276.html