




免费预览已结束,剩余10页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第四章 系统软件的设计4.1 CCD照相机原理CCD的工作原理由微型镜头、分色滤色片、感光层等三层,将分别叙述如下: 1. 微型镜头 微型镜头为CCD的第一层,数码相机成像的关键是在于其感光层,为了扩展CCD的采光率,必须扩展单一像素的受光面积。但是提高采光率的办法也容易使画质下降。这一层“微型镜头”就等于在感光层前面加上一副眼镜。因此感光面积不再因为传感器的开口面积而决定,而改由微型镜片的表面积来决定14。 CCD传感器是一种新型光电转换器件,它能存储由光产生的信号电荷。当对它施加特定时序的脉冲时,其存储的信号电荷便可在CCD内作定向传输而实现自扫描。它主要由光敏单元、输入结构和输出结构等组成。它具有光电转换、信息存贮和延时等功能,而且集成度高、功耗小,已经在摄像、信号处理和存贮三大领域中得到广泛的应用,尤其是在图像传感器应用方面取得令人瞩目的发展。CCD是由许多个光敏像元按一定规律排列组成的。每个像元就是一个MOS电容器(大多为光敏二极管),它是在P 型Si衬底表面上用氧化的办法生成1层厚度约为1000A15 00A的SiO2,再在SiO2表面蒸镀一金属层(多晶硅),在衬底和金属电极间加上1个偏置电压,就构成1个MOS电容器。当有1束光线投射到MOS电容器上时,光子穿过透明电极及氧化层,进入P型Si衬底,衬底中处于价带的电子将吸收光子的能量而跃入导带。光子进入衬底时产生的电子跃迁形成电子空穴对,电子空穴对在外加电场的作用下,分别向电极的两端移动,这就是信号电荷。这些信号电荷储存在由电极形成的“势阱”中。 MOS电容器的电荷储存容量可由下式求得: QS=CiVGA 4-1式中: QS是电荷储存量; Ci是单位面积氧化层的电容; VG是外加偏置电压; A是MOS电容栅的面积。由此可见,光敏元面积越大,其光电灵敏度越高15。2. 分色滤色片 分色滤色片为CCD的第二层,目前有两种分色方式,一是RGB原色分色法,另一个则是CMYK补色分色法这两种方法各有优缺点。RGB即三原色分色法,几乎所有人类眼睛可以识别的颜色,都可以通过红、绿和蓝来组成,而RGB三个字母分别就是Red, Green和Blue,这说明RGB分色法是通过这三个通道的颜色调节而成。再说CMYK,这是由四个通道的颜色配合而成,他们分别是青(C)、洋红(M)、黄(Y)、黑(K)。在印刷业中,CMYK更为适用,但其调节出来的颜色不及RGB的多8。 3. 感光层 感光层为CCD的第三层,这层主要是负责将穿过滤色层的光源转换成电子信号,并将信号传送到影像处理芯片,将影像还原。4.2 图像数据结构(1) CCD芯片的成像如图所示,物体在有光线照射到它时将会产生反射,这些反射光线进入镜头光圈照射在CCD芯片上,在各个单元中生成电子。曝光结束后,这些电子被从 CCD 芯片中读出,并由相机内部的微处理器进行初步处理。此时由该微处理器输出的就是一幅数字图像了。通过模数转换器芯片转换成数字信号,数字信号经过压缩以后由相机内部的闪速存储器或内置硬盘卡保存,因而可以轻而易举地把数据传输给计算机,并借助于计算机的处理手段,根据需要和想像来修改图像。图4-1 灰白数字图像的形成 以上是CCD芯片中读取像素的形式,然而以上的方式读出的是一幅灰白图像,而光是含有波长的信息的,也就是说每一幅彩色图像中也应该由多个CCD芯片才能读取,按红绿蓝三色分量表示一幅图像,则需要三个CCD芯片通过凌镜分光后读取成像。这也是3CCD彩色相机的成像原理,可是这样就会使相机的重量和成本增加。因此科研人员在很多年前就开始研发只使用一个 CCD 芯片也能输出各种彩色分量的相机。 (2) 单CCD彩色相机成像 如果在 CCD 表面覆盖一个只含红绿蓝三色的马赛克滤镜,再加上对其输出信号的处理算法,就可以实现一个 CCD 输出彩色图像数字信号。这种滤镜称作拜尔滤镜。 图4-2 彩色数字图像的形成如上图4-2所示,该滤镜的色彩搭配形式为:一行使用蓝绿元素,下一行使用红绿元素,如此交替;换言之,CCD 中每4个像素中有2个对绿色分量感光,另外两个像素中,一个对蓝色感光、一个对绿色感光。从而使得每个像素只含有红、绿、蓝三色中一种的信息,但我们希望的是每个像素都含有这三种颜色的信息。可以用插值法进行处理。 以上的读取的像素列表中的每一个像素都失去了另外两种颜色的信息,插值法可以通过分析与这个红色像素相邻的像素计算出这两个值。 图4-3 临近像素复制法临近像素复制法 这种方法是通过从该像素的临近像素中获取色彩值,如图4-3所示。在源图像中该点实际是红色的,但经拜尔滤镜中绿色镜片过滤后,该点色值为零。我们只需要把临近红蓝像素中的红色与蓝色值复制到该像素中,就能获得其RGB值(255,0,0)。4.3 图像数字处理4.3.1 位图结构1. 文件头 用于存放图像的特征参数及其存放位置和文字注解等。它有固定格式及灵活格式两大类。前者如PCX、BMP等,它们存储规定的参数,且数据在文件中的存放位置是固定的;后者如TIF文件格式,文件中除了规定的参数外,还可自行定义特征参数,数据在文件中的存放位置也不固定,且同一文件中可存放多幅图像2. 色调数据 色调数据是指16色和256色彩色显示模式下的调色板数据,真彩色图像则不需要色调数据。有些图像文件格式中色调数据放在文件头中3. 像素数据像素数据以位图的形式存放,有压缩、不压缩之分,压缩数据可以节省存储容量,但在存取时需进行压缩和解压缩处理,处理速度稍慢些。不压缩的像素数据在不同格式的图像文件中的存储结构基本相同,与显示存储器中的存放形式相似。常用的压缩方法为行程编码、霍夫曼编码和LZW压缩编码等16。4.3.2 图像灰度化图像灰度化:图像灰度(Gray)化处理就是把彩色图像转换成灰度图像。通常,通过采集卡采集过来的图像为彩色图像,为加快处理速度,要把彩色图像转化为黑白图像。在一般情况下,彩色图像每个像素用三个直接对应着R、G、B分量的亮度值,转换后的黑白图像的一个像素用一个字节表示该点的灰度值,它的值在0255之间,数值越大,该点越白,即越亮;反之数值越小,该点就越黑,即越暗。图像灰度化就是使色彩的三种颜色分量R、G、B的分量值相等。由于由于R、G、B的取值范围是0,255,所以,灰度是级别只有256级,即灰度图像仅能表现256种灰度颜色。采用加权平均值法(Weight Averaging):“加权”在计算机数据结构中经常用到,这种方法是根据重要性或其他指标给R、G、B赋予不同的权值,并使R、G、B等于它们的加权平均值,即 4-2其中、分别是R、G、B的权值,若取的权值不同,则所得灰度图像不同。由于人眼对绿色光的敏感度最高,红色次之,对蓝色的敏感度最低,因此,当权值时,所产生的图像更符合人眼的视觉感受。通常,取=30%,=59%,=11%时,灰度最合理16。 4.3.3 图像二值化 二值化:也就是图像阈值化,就是让用户选择一个分界点,将大于该分界点的所有像素认定为白色,小于该分界点的所有像素认定为黑色。图像阈值化算法就是让用户指定一个阈值参数,然后对图像中每一个像素的灰度值进行判断,大于该阈值的认定为白色,否则就认定为黑色,从而产生一副只有黑白两色的图像。固定阈值法:为灰度图像f指定一个阈值T,把灰度小于给定阈值T的像素置为0,大于阈值T的像素置为255,从而对灰度图像实现二值化变换。固定阈值法的变换函数表达式如下: 4-3其中T为指定的阈值。编程思路:1.通过对话框获取用户指定的阈值T, 2.循环处理图像数据区内所有像素。 3.取出每一个像素的R、G、B三分量,计算它们的灰度值。 4.将用户指定的阈值去检验上一步中得出的灰度值,若该像素灰度值小于T,则将其置为0,否则置为255。 5.将上一步所得新值作为结果亮度输出。 6.循环步骤3、4、5,直到处理完所有的像素点17。考虑到光线对照片的影响,在确定T的取值时,应该综合考虑整张照片所有的像素点,所以在程序中先对照片灰度化处理,再将所有像素点遍历一次,求得所有像素的灰度平均值,再把平均值用作标准,对图像进行二值化。 图4-4 二值化效果图4.3.4 图像滤波图像滤波,即在尽量保留图像细节特征的条件下对目标像的噪声进行抑制,是图像预处理中不可缺少的操作,其处理效果将直接影响到后续图像处理和分析的有效性和可靠性18。 中值滤波是一种非线性信号处理方法,它的基本原理是把数字图像或数字序列中的一点的值用该点的一个邻域中的各点值的中值代替。通俗地讲中值滤波就是用一个活动窗口沿图象移动,窗口中心位置的象素灰度用窗口内所有象素灰度的中值来代替。对于一幅图像的象素矩阵,取以目标象素为中心的一个子矩阵窗口,这个窗口可以是3 3 ,5 5 等,可根据需要选取,窗口的形状常用的有方形、十字形和圆形等。对窗口内的象素灰度排序,取中间一个值作为目标象素的新灰度值。设 x ij ( i , j ) I2 表示数字图像各点的灰度值,滤波窗口为A 的二维中值滤波,可定义为: yij = MedA x ij = Med x ( i + r) ( j +s) , ( r , s) A , ( i , j) I2 4-4邻域的大小决定在多少个数值中求中值,窗口的形状决定在什么样的几何空间中取元素计算中值。窗口的大小和形状有时对滤波效果影响很大189。图4-5 滤波效果图4.3.5 定位 在对照片完成中值滤波之后,照片中就会凸显出原本画好的圆形。靶位点的测量便是旨在测出圆心的坐标点,此时在图像中得出的是圆心的像素坐标,要想传到下位机驱动电动机还需将像素坐标值转化毫米距离。在位图的头文件中储存有位图的图像大小的信息,这是由相机决定的,就是说在软件中分析的所有图形大小一致,再加上相机固定在机架上,不随工作台移动,与工作台垂直距离保持不变,所以照片尺寸对应的工作台实际尺寸之间保持一个固定的关系,所以定位可以按一套程序参数来完成。测量工作主要分两步:(1) 分析图像,根据图像的对称性,找出所有黑点的像素点坐标值及所有黑点的点数,然后分别对X,Y方向的坐标取平均,得到圆心像素坐标;(2) 转换尺寸,根据得到的像素坐标,计算相应的距离,输出到下位机。图4-6 定位效果图4.4 通信协议设计 PC做主机,单片机做从机。主机向从机发送一个随机数RB,从机收到RB之后,对数据做一定处理,并重新生成一个数据TB发回到主机,主机解密之后与RB进行核对,如果一致,则发送再次发送RB,表示连接成功,从机在收到RB之后再进行一次处理,并发送结果到主机,主机收到后再一次核对确认后准备发送数据,从机准备接收;如果不一致,则主机重新获取随机数建立连接,从机也重新对数据进行处理。 在.NET平台下使用C#创建串口通信程序,.NET 3.5提供了串口通信的功能,其命名空间是System.IO.Ports,。这个新的框架不但可以访问计算机上的串口,还可以和串口设备进行通信。使用USB串口线在单片机与PC间通信20。 主机用C#编程,System.IO.Ports命名空间中最重用的是SerialPort 类,通过创建SerialPort 对象,可以在程序中控制串口通信的全过程。ReadLine():从输入缓冲区读一新行的值,如果没有,会返回NULLWriteLine(string):写入输出缓冲Open():打开一个新的串口连接Close():关闭 BaudRate:串口的波特率StopBits:每个字节的停止位数量ReadTimeout:当读操作没有完成时的停止时间。单位,毫秒 在数据传输的时候,每个字节的数据通过单个的电缆线传输。包括开始位,数据位,结束位。一旦开始位传出,后面就会传数据,可能是5,6,7或8位,发送和接收必须设定同样的波特率和数据位数21。附录1: 灰度化程序private void button2_Click(object sender, EventArgs e) try int height = this.pictureBox1.Image.Height; int width = this.pictureBox1.Image.Width; Bitmap newbitmap = new Bitmap(width,height ) ; Bitmap oldbitmap = (Bitmap)this.pictureBox1.Image; Color pixel; for (int x = 0; x width; x+) for (int y = 0; y height; y+) pixel = oldbitmap.GetPixel(x, y); int r, g, b, result = 0; r = pixel.R; g = pixel.G; b = pixel.B; int iType = 2; switch (iType) case 2: result = (int)(0.3 * r) + (int)(0.59 * g) + (int)(0.11 * b); break; newbitmap.SetPixel(x, y, Color.FromArgb(result ,result, result); this .pictureBox1 .Image =newbitmap ; catch (Exception ex) MessageBox.Show (ex.Message ,信息提示); 附录2: 二值化程序private void button2_Click(object sender, EventArgs e) try int height = this.pictureBox1.Image.Height; int width = this.pictureBox1.Image.Width; Bitmap newbitmap = new Bitmap(width,height ) ; Bitmap oldbitmap = (Bitmap)this.pictureBox1.Image; Color pixel; Color pixel1; for (int x = 0; x width; x+) for (int y = 0; y height; y+) pixel = oldbitmap.GetPixel(x, y); int r; int num=0 ; r = pixel.R; num+= r ; for (int m = 0; m width; m+) for (int n = 0; n height; n+) Pixel1 = oldbitmap.GetPixel(m, n); int g; g = pixel.G; int ave = num/(width*height); if(r pictureBox1.Image.Width) xres = pictureBox1.Image.Width; if (yres pictureBox1.Image.Height) yres = pictureBox1.Image.Height; for (int i = 1; i xres - 1; i+) for (int j = 1; j yres - 1; j+) rr = 0; m = 0; for (k1 = -1; k1 = 1; k1+) for (k2 = -1; k2 = 1; i1-) for (j1 = 1; j1 dtj1) dm = dtj1; dtj1 = dtj1 - 1; dtj1 - 1 = dm; rr = dt(int)(m / 2); Color c1 = Color.FromArgb(rr, rr, rr); box1.SetPixel(i, j, c1); pictureBox1.Refresh(); pictureBox1.Image = box1; 附录4: 定位程序private void button5_Click(object sender, EventArgs e) int height = this.pictureBox1.Image.Height; int width = this.pictureBox1.Image.Width; Color pixel; Bitmap pic = (Bitmap)this.pictureBox1.Image; int arr = new int6; float numx = 0; float numy = 0; for (int j = 0; j 200; j+) for (int i = 0; i 3; i = i + 2) REGET: int x = rnd.Next(0, width); int y = rnd.Next(0, height); pixel = pic.GetPixe
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 岳阳市中储粮2025秋招笔试模拟题及答案
- 内江市中石油2025秋招笔试性格测评专练题库及答案
- 中国广电嘉兴市2025秋招心理测评常考题型与答题技巧
- 绥化市中石油2025秋招笔试提升练习题含答案
- 郴州市中石油2025秋招心理测评常考题型与答题技巧
- 毕节市中石化2025秋招笔试模拟题含答案油气储运与管道岗
- 国家能源昌都市2025秋招面试专业追问及参考计算机与自动化岗位
- 三门峡市中石油2025秋招笔试模拟题含答案炼油设备技术岗
- 邯郸市中石油2025秋招笔试模拟题含答案炼油设备技术岗
- 平顶山市中石化2025秋招面试半结构化模拟题及答案油品分析质检岗
- 产房考试试题及答案
- 重症自身免疫性脑炎监测与治疗中国专家共识(2024版)解读
- 供餐服务合同协议书模板
- 无偿搭车免责协议书
- 2025-2030年中国电力线载波通信芯片行业市场现状供需分析及投资评估规划分析研究报告
- 窗户改造合同协议书
- 《脑电图的临床应用》课件
- 中国补习班行业市场发展现状及前景趋势与投资分析研究报告2025-2028版
- 《电生理导航系统》课件
- 《局部解剖胸部》课件
- 赛鸽公棚内部管理制度
评论
0/150
提交评论