偏振度图像获取课设.docx
- 文档编号:10169280
- 上传时间:2023-02-09
- 格式:DOCX
- 页数:17
- 大小:2.39MB
偏振度图像获取课设.docx
《偏振度图像获取课设.docx》由会员分享,可在线阅读,更多相关《偏振度图像获取课设.docx(17页珍藏版)》请在冰豆网上搜索。
偏振度图像获取课设
课程设计
题目:
偏振度图像的获取
学院:
电子工程与自动化学院
专业:
光信息科学与技术
学生姓名:
学号:
指导教师:
2011年12月26日
内容摘要:
由Stokes矢量计算偏振度原理,通过使白光光源照射在电路板表面,反射光通过偏振片后由CCD探测同一目标在不同偏振方向的反射光采集到几组图像数据,最终可合成偏振度图像,结果表明偏振度图像包含有许多普通图像所不能体现出的信息,利用这些信息可以识别区分在普通图像中难以辨别的物体,可应用于军事目标识别与遥感目标识别领域。
关键字:
偏振度Stokes参量目标识别偏振度成像VC++编程
1、设计任务及要求:
任务:
设计实验光路,通过CCD成像器件采集目标物体的偏振信息图像数据并使用计算机编程做数据处理最终合成偏振度图像。
要求:
获取自然光(白光)照射条件下目标偏振图像,并计算合成偏振度图像,并对图像数据结果进行必要的分析。
对所选用设备、确定的方案给出技术分析。
2、实验原理:
由于电磁波经物体表面反射辐射后,根据表面的结构、纹理以及入射的角度,其偏振状态将发生改变,会使物体表面某些信息得到增强,从而可以更有效地鉴别物体。
所以,通过实验手段获得的偏振图像可以表征一些强度测量很难表征的信息,如表面的结构、粗糙程度等。
偏振度:
是度量电磁波中偏振程度的参数,为偏振光在总光强中所占的比例。
一般而言,偏振度在0(自然光)与1(全偏振)间变化。
斯托克斯参量(Stokesparameters):
是光学偏振态的数学表示。
斯托克斯引入四个量作为表示偏振态的参量,即:
S0=〈|Ex|2〉+〈|Ey|2〉……(1-1)
S1=〈|Ex|2〉-〈|Ey|2〉……(1-2)
S2=〈2ExEycosδ〉……(1-3)
S3=〈2ExEysinδ〉……(1-4)
其中Ex,Ey是光的电矢量E在x、y方向上的振幅,δ是二者的相位差。
这四个参量可以表示自然光及各种偏振光。
一个给定的斯托克斯参量可看做一个矢量。
Stokes参量中的S0、S1、S2、S3通常表示成I、Q、U、V。
其中I表示光波的总强度。
Q表示x方向与y方向上的线偏振光的强度差。
U表示
方向与
方向上的线偏振光的强度差。
V表示右旋不是左旋圆偏振分量占优势。
在自然界大气背景及目标物对太阳入射的偏振效应中,圆偏振的分量极少,相对于仪器的误差来说可以忽略,通常假定V=0。
因而,要完全确定一束光线的偏振状态,还需要三个独立数据来确定I、Q、U这三个参量。
得到Stokes矢量S=[IQUV]后即可通过以下公式计算出该光束的偏振度为:
,(V=0)
……(1-5)
3、方案论证和选择:
3.1方案一:
三个不同角度测量线偏振光强法
由上述原理有:
I=S0=〈|Ex|2〉+〈|Ey|2〉……(2-1)
Q=S1=〈|Ex|2〉-〈|Ey|2〉……(2-2)
U=S2=〈2ExEycosδ〉……(2-3)
在任一xoy平面,在与X轴的夹角为
的方向上进行观测所得到的光强可以用下式表述:
……(2-4)
或者:
……(2-5)
这样只要测出三个不同角度的线偏振光的光强I,就可以联立求出Stokes的I、Q。
U的值。
现取0o、60o、130o三个角度获得I、Q、U值如下:
……(2-6)
……(2-7)
……(2-8)
这样通过实验使用CCD成像器件测出0o、60o、130o三个角度下的灰度图像即可没得三个方向的光强I1、I2、I3的图像。
代入以上(2-6)(2-7)(2-8)三式求出I、Q、U,然后再代入式(1-5)即可求得偏振度值P。
3.2方案二:
四个不同角度测量线偏振光强法
按式(1-1)(1-2)(1-3)(1-4)可得:
……(2-9)
其中I为光的总强度,I-1、I0、I1、I2分别表示放置在光传播方向上一理想偏振片透光轴与参考方向呈-45o、0o、45o、90o方向上的线偏振光强,Ir和Il表示右旋(r)和左旋(l)圆偏振光强.线偏振光的Stokes矢量为[1100],自然光的Stokes矢量为[1000]。
这样通过实验使用CCD成像器件测出-45o、0o、45o、90o四个角度下的灰度图像即可没得四个方向的光强I-1、I0、I1、I2的图像。
代入上式(2-9)求出I、Q、U,然后再代入式(1-5)即可求得偏振度值P。
3.3方案比较与选择
两个方案相比看出,在实验步骤上两者大同小异,主要区别在于数据采集和数据处理过程。
使用方案一则只需使检偏器分别旋转3个角度拍取图像即可,由于在实验过程中,去旋转检偏器多多少少会使镜片产生位移,这样可能会引起拍摄图像产生位移。
3个角度方法,即只需旋转两次,相比4个角度方法少转一次,从而减少由于镜片位移引起的误差。
使用方案二则需要测量4组数据,相比方案一多测1组。
这样360o划分为45o,而方案二划分为60o,所以相对于方案二,方案一计算测量的分辨率要高,从而计算误差比方案一的要小。
综上所述,最终选用方案二。
4、光路设计及器件选择
由方案二原理分析得,所需器件有:
白光光源、被测目标物(实验所用电路板)、偏振片(检偏器)、成像透镜、CCD成像探测器、计算机、固定支架等。
由于白光光源的光谱分布最接近于自然光的光谱分布,所以其光束各方向偏振强度均匀,比较符合实验原理要求。
当白光照射到被测物时,其反射的光偏振方向主要就取决于目标物表面性质的分布。
被测目标物的选择:
由于要获取的图像为偏振度图像,则图像应该具有明显的轮廓和层次感,这样才能体现出由于被测物表面性质分布特征而反映出的物体表面某些信息。
所以要选择的被测物体表面性质、结构、粗糙程度等应有明显的变化。
实验初步使用树叶,用偏振度图像反映树叶的脉络。
另外也可以选择表面物质有性质有明显变化的物体,如电路板。
实验最终选用性质变化明显的电路板。
偏振片:
其对入射光具有遮蔽和透过的功能,可使纵向光或横向光一种透过,一种遮蔽。
在实验中,其起着关键作用。
实验通过旋转偏振片于不同方向可以让不同方面的线偏振光束透过成为线偏振图像。
成像透镜:
主要是作为CCD成像采集的辅助作用,其将被测物体成像于CCD探测面上。
为了保证物体表面层次成像有好效果,应使用光学传递函数MTF值在中低频的强度曲线呈平缓的成像透镜器件。
CCD成像器件:
其主要用于光线偏振图像的光强度直接采集,直接关系的源数据信息及误差,所应尽可以选择分辨率高和暗电流小的CCD器件。
计算机:
主要用于采集的图像数据处理。
实际编程计算时可使用MATLAB或VC++6.0等编程开发软件。
为了保证数据处理的速度,应先用内存大、运算速度高的计算机。
5、实验原理及过程
5.1光路图:
5.2实验工作原理:
如图1实验光路图所示,白光光束照射到物体表面后CCD探测方向的反射光线与入射光线之间的夹角应大于或等于90度(实际选用约100度),这样反射光的偏振信息才明显。
反射光束经过偏振片后透过的只有线偏振光束,这样得到的则为线偏振图像。
通过成像透镜后,CCD探测采集到线偏振图像数据。
实验中,通过旋转偏振片分别为-45o、0o、45o、90o四个角度方向则可以采集到相应方向上的线偏振图像。
通过数据处理,将采集到的灰度强度数据代入式(2-9)求出I、Q、U,然后再代入式(1-5)即可求得偏振度值P。
最终将所有计算结果的像素合成的图像即为偏振度图像。
5.3实验步骤:
1)摆光路器件:
按图1实验光路图,除偏振片外,按光路顺序摆放好各器件,其中将电路板(目标物)以白纸为背景固定在目标靶上。
2)调焦:
在光轴方向上移动成像透镜,观察采集图像的,使图像达最清晰程度,并固定好所有器件。
3)采集普通图像:
如图1,在成像透镜前加入偏振片并旋转偏振片角度使采集在的图像呈最明亮的程度,记录该图像为普通图像。
4)采集线偏振图像:
按偏振片上的刻度值,分别将偏振片与参考刻度成:
-45o、0o、45o、90o夹角,采集记录相应的图像:
I-1、I0、I1、I2。
5)数据处理:
将步骤4)采集到的I-1、I0、I1、I2图像灰度值代入式(2-9)求出I、Q、U,然后再代入式(1-5)即可求得偏振度值P。
最终将所有计算结果的像素合成的图像即为偏振度图像。
5.4实验记录数据:
6、图像数据处理及分析
6.1编程计算过程:
6.1.1编程工具的选择:
在图像处理编程中,较好常用的是MATLAB软件编程,其特点是方便程序设计,许多图像处理的函数如:
图像文件输入输出(imread()、imwrite())、图像转换(rgb2gray())、图像灰度增强运算、数字图像空域滤波等已经包含在数据库中,用户只需调用这些现成的函数来处理相应的数据及可快捷完成实现图像的处理。
其主要缺点是,一般设计的MATLAB程序只能运行在MATLAB软件的基础上,即程序只能在打开了MATLAB软件通过它来调出程序才能正常运行,程序独立性较差,工作平台受到了限制。
若在没有涉及到太多的图像数据处理,如:
图像增强,图像滤波,图像复原一的些复杂的运算,使用VC++6.0通用的软件编程不但可以完成简单的图像处理功能,还解决了MATLAB中程序独立性差的缺点。
因为VC++编程及为面向windows系统的编程,其编写完成的可执行文件可以直接在操作系统上运行。
这样,通过完成软件成品的编程,在实验数据处理中很方便快捷的完成处理得到运算结果。
相比上述两种编程工具,虽然MATLAB方便设计,但不方便实验中使用来做数据处理,而使用VC++6.0虽然工作量较大,但更有利于实验数据处理使用方便,所以最终选用VC++6.0编程工具。
6.1.2图像数据处理算法:
图像数据的处理主要是将所采集到的4个角度方向的线偏振图像数据I-1、I0、I1、I2图像灰度值代入式(2-9)求出I、Q、U,然后再代入式(1-5)即可求得偏振度值P。
最终将所有计算结果的像素合成的图像即为偏振度图像。
通过读取采集的BMP位图文件,将四个角度的线偏振图像数据保存在头指针分别为:
lpImgDataN45,lpImgData0,lpImgData45,lpImgData90的数据块中,并开辟运算结果存放的数据块其头指针为:
lpImgDataResult。
如右图5所示的流程,从各数据块的指针头开始,从4个源数据块的头指针取出像素灰度值(由于CCD采集的图像为24位的黑白图像,即rgb三字节的数据相等,所以只需取被3整除的序列的元素则可得到所有信息),然后代公式(2-9)、(1-5)计算出灰度值P,最终合成灰度图像。
如附录2中代码段所示,数据处理通过使用for循环语句逐个查找源数据的4个数据块的元素来计算出偏振度对应的灰度并存到计算结果数据块中。
最终发送PAINT消息,由OnPaint消息响应函数来显示计算结果的偏振度图像。
6.2合成的强度图像:
图4强度图像
6.3合成的偏振度图像:
图5偏振度图像
6.4数据分析:
如图4的合成偏振度图像所示,从中可看出图像主要以被腐蚀了表面铜的塑料板电路为背景,可明显的看出各不同器件的轮廓。
电路板中包含有如下器件:
直插电阻、二极管、三极管、电解电容。
其均由不同的材料组成,如下:
电路板材料:
合成塑料板;电阻表面:
碳膜金属膜氧化膜;二极管:
硅及一些掺杂物;三极管:
硅、塑料、环氧树脂;电解电容:
通常是由金属箔和绝缘氧化层(氧化铝/钽五氧化物)。
从图6的亮暗对比程序看出,从以上同一区域的不同图像看出,在强度图像中分辨不明显的三极管和电解电容在偏振度图像中得到明显区分。
偏振图像中三极管偏振度最高,其次是电阻和电解电容的偏振度相当,而二极管的偏振度较低;其中偏振度表现最低的则为电路塑料板。
从偏振图像中各元器件偏振度的对比可明显发现,偏振度图像表征了物体材料的物理化学特性。
通过这点可说明,偏振成像探测技术在云和大气溶胶的探测、地质勘探、土壤分析、环境监测、材料分析等领域具有非常长远的应用价值。
7、课题评价
7.1总结设计的特点:
该图像偏振度的获取方法是较为常用的的方法,通过使用偏振处过滤光束实现线偏振图像的获取,最后将4个角度的线偏振图像通过公式计算得偏振度图像。
与通常方案相比,本方案的突出特点在于图像数据处理环节。
本方案采用VC++编程工具,实现独立运行于Windows操作系统上的图像处理。
7.2方案的优缺点:
方案优点:
使用VC++界面控制,在实验数据处理中方便快捷,具有实际应用价值,在VC++上的设计比较灵活,可根据实验需要添加设计新功能。
方案缺点:
未能达到实时性采集获取偏振度图像;实验装置简单,测量数据容易外面干扰产生较大误差。
7.3课题核心价值:
本次课题主要在光偏振度的研究基础上设计方案采集合成偏振度图像,通过实验数据的处理比较,论证偏振度图像在研究物体成像中所表征一些偏振信息在物体识别中所起到的突出作用。
通过课题认识到偏振成像探测技术在大气溶胶的探测、地质勘探、土壤分析、环境监测、材料分析等领域具有非常长远的应用价值。
8、总结体会:
通过本次课程设计,本人对光学技术中的偏振度图像有了进一步了解,认识到了偏振成像探测技术在实际自然界研究起着重要的作用。
在实验数据采集中,了解到了各器件的使用细节,提高了动手能力。
通过采用VC++编程对Windows程序设计和调试有了初步认识,积累了初步经验,培养了能通过使用计算机处理能力了对实验数据处理的能力。
能使用所学知识解决现实中所遇到的问题是一件非常有意义的事,通过本次课设也进一步巩固了大学期间所学的知识。
9、参与文献
[1]唐若愚,于国萍,王晓峰.自然光照下偏振度图像的获取方法[J].武汉大学学报,2006,52
(1),59~60.
[2]于国萍,王晓峰.偏振图像的研究[J].物理实验,2009,29(7),38~42.
[3]曾延安,马娟,常大定.基于VC++的偏振度图像获取[J].微计算机信息,2007,23(8),304~306.
[4]任哲.Windows程序设计技术基础:
MFC与.NET.窗口软件,Windows.北京:
机械工业出版社,2009
附录1:
实验器材
实验器材
数量
备注
白光光源
1
实验室中的白光点光源
偏振片
1
成像透镜
1
CCD
1
计算机
1
支架
若干
被测目标
若干
树叶、电路板
附录2:
程序代码段:
BMP文件的读取与保存:
以下为BMP文件的读取程序段:
BYTE*lptImgData;//内存数据块指针
LPCTSTRlpszFilter="BMPFiles(*.bmp)|*.bmp|任何文件|*.*||";//文件过滤设置
CFileDialogfiledlg(TRUE,NULL,NULL,OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT,lpszFilter,NULL);//定义文件对话框对象
CStringfilename;
CFilefile;
BYTE*lptImgData;
if(filedlg.DoModal()==IDOK)//调出文件对话框
{
filename=filedlg.GetPathName();//获取文件名
//打开文件
file.Open(filename,CFile:
:
modeRead|CFile:
:
shareDenyNone,NULL);
//开辟内存
lptImgData=(BYTE*)HeapAlloc(GetProcessHeap(),HEAP_ZERO_MEMORY,m_bmih.biSizeImage);
file.Read(lptImgData,m_bmih.biSizeImage);//将文件数据读入内存
file.Close();//关闭文件
}
以下为BMP文件的保存程序段:
LPCTSTRlpszFilter="BMPFiles(*.bmp)|*.bmp|任何文件|*.*||";//文件过滤设置
CFileDialogfiledlg(FALSE,lpszFilter,"PolarImg.bmp",OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT,lpszFilter,NULL);//定义文件对话框对象
CStringfilename;
if(IDOK==filedlg.DoModal())//调出文件对话框
{
CFilefile(filedlg.GetPathName(),CFile:
:
modeCreate|CFile:
:
modeReadWrite);
filename=file.GetFilePath();//获取文件
//将内存数据写入磁盘文件
file.Write(m_lpImgDataResult,m_bmih.biSizeImage);
file.Close();//关闭文件
}
以下为源图像数据计算偏振度图像的程序段:
intI,Q,U,P;//定义公式参数I,Q,U,P
DWORDi;
BYTE*ptImg0,*ptImg45,*ptImg90,*ptImgN45,*ptImgResult;//定义各数据块指针
ptImg0=m_lpImgData0;//局部指针与全局指针关联
ptImg45=m_lpImgData45;
ptImg90=m_lpImgData90;
ptImgN45=m_lpImgDataN45;
m_lpImgDataResult=(BYTE*)HeapAlloc(GetProcessHeap(),HEAP_ZERO_MEMORY,m_bmih.biSizeImage);//开辟存放计算结果数据块
ptImgResult=m_lpImgDataResult;
for(i=0;i { //取源数据块中被3整除的元素计算偏振度 if(i%3==0) { I=*ptImg0+*ptImg90; Q=*ptImg0-*ptImg90; U=*ptImg45-*ptImgN45; P=(BYTE)(sqrt(Q*Q+U*U)*256/I);//P为偏振度转换成255灰度数值 } *ptImgResult=P;//计算结果赋给数据块对应元素 ptImg0++;//所有参与运算的数据块指针后移一步 ptImg45++; ptImg90++; ptImgN45++; ptImgResult++; } m_lpImgData=m_lpImgDataResult;//计算的最终数据块指针赋给全局指针 UpdateAllViews(NULL,0,NULL);//发送PAINT消息,来显示偏振度图像 图像显示: 在MFC中可以直接做系统调用API的接口函数SetDIBitsToDevice()将位图数据在窗口客户区显示出来。 显示代码如下: voidCMyBitmapView: : OnPaint() { CPaintDCdc(this);//devicecontextforpainting //TODO: Addyourmessagehandlercodehere CMyBitmapDoc*pDoc=GetDocument(); ASSERT_VALID(pDoc); if(pDoc->m_bFileOpened==1) { SetDIBitsToDevice(dc.m_hDC,0,0,pDoc->m_bmih.biWidth, pDoc->m_bmih.biHeight,0,0,0, pDoc->m_bmih.biHeight,pDoc->m_lpImgData, pDoc->m_pbi,DIB_RGB_COLORS); pDoc->m_bUpdateDraw=0; } //DonotcallCView: : OnPaint()forpaintingmessages } 在系统接收到PAINT消息时将会调用该响应函数来做窗口的重绘工作。 附录3: 实验光路图 附录4: VC++编写软件界面图
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 偏振 图像 获取