光学图象处理课程设计.DOC

上传人:国*** 文档编号:755944 上传时间:2018-10-31 格式:DOC 页数:29 大小:171.50KB
下载 相关 举报
光学图象处理课程设计.DOC_第1页
第1页 / 共29页
光学图象处理课程设计.DOC_第2页
第2页 / 共29页
光学图象处理课程设计.DOC_第3页
第3页 / 共29页
光学图象处理课程设计.DOC_第4页
第4页 / 共29页
光学图象处理课程设计.DOC_第5页
第5页 / 共29页
点击查看更多>>
资源描述

1、光学图象处理实验(课程设计)指导说明书信息物理与工程系王振东2003 年 5 月一、实验(课程设计)目的:通过本实验(课程设计) ,掌握数字图象处理的基本原理;掌握 Visual C+、或 Matlab、或 VB 等 WINODWS 编程软件的使用;掌握程序的编辑、编译和调试方法;掌握基本数字图象文件格式;掌握图象输入、输出软件接口。二、实验(课程设计)仪器PC 微型计算机一台,Visual C+、或 Matlab、或 VB 等 WINODWS 编程软件。实验样图及图像程序接口。三、实验(课程设计)原理在 PC 机平台及 WINODWS 操作系统上,以通用编程软件通过软件编程实现数字图象文件的

2、读取、存储、显示,同时设计一种或几种数字图象处理算法并调试实现,将处理结果以图象方式显示,完成数字图象处理的基本过程。四、实验(课程设计)步骤1按要求进行设计选题(选题范围附后) ;2查阅相关资料,筛选并确定算法;3仔细阅读相关软件使用手册,了解软件编程方法;4按格式输入编制好的程序;5对程序进行编译,查找语法错误;6根据编译过程指出的错误,修改错误,直到编译通过;7开始调试算法,通过观察输出结果的变化,查找算法错误,直至算法调试正确;8完成程序整理,并编译出最终版本的可执行程序;9根据要求完成课程设计(实验)报告。五、实验(课程设计)要求在进行实验(课程设计)前要预习,必须基本掌握其中一种

3、WINODWS 编程软件的使用。熟悉数字图象处理的基本原理和过程,掌握基本数字图象文件格式;掌握图象输入、输出软件接口。掌握设计数字图象处理算法的过程和方法并调试实现。六、实验(课程设计)结果实验(课程设计)报告。源程序和可执行程序。七、选题范围(一)通用选题1图象编码:a.哈夫曼编码, b.游程长度编码, c.香农编码,d. 其它熵编码;2图象变换:a.快速二维离散傅氏变换, b.离散余弦变换,c.离散沃尔什变换,d.离散小波变换;3图象增强:a.灰度级校正, b. 灰度级变换, c.直方图修正,d. 直方图均衡,e.同态增晰,f.噪声平滑,g.中值滤波,h.锐化,i.几何校正;4图象复原:

4、a.反向滤波, b. 最小二乘滤波, c.同态滤波,d.卡尔曼滤波;5图象分割:a.阈值分割, b. 边界检测, c.骨架提取,d.区域生长,e.同分裂合并,f. 区域标记;6图象识别:a. 边界表达(链码,曲线拟合,转折能量法) , b. 边界描述(矩形度,圆形度,矩,傅立叶形状描述) ,c. Hough 变换,d. 广义 Hough 变换,e. 区域表达(四叉树,骨架) ,f. 区域描述(投影,不变矩) ,g. 纹理描述符,h.贝叶斯判决,i. 模板匹配;7图象重建:a.傅立叶变换重建, b. 滤波反投影重建, c.代数迭代重建。(二)专用选题1光斑定位问题的研究。即通过对一个光斑图象的处

5、理,精确地找出光斑的中心坐标,并确定其定位精度;2数值方法提高图象分辨率的研究。即通过对一个图象的数学插值处理,获得比物理图象分辨率更高的图象,并对不同数学插值算法的效果和可实现性进行比较;3中值滤波算法的优化设计研究。包括效果优化和计算量优化。4图象匹配识别。即已知一幅标准图象,然后与其它图象进行比较,判断该图象与标准图象的匹配程度。5光学自动对焦算法。在光学系统成像过程中,通过所成的像清晰与否来判断光学系统的对焦是否准确。6自选。八、实验(课程设计)报告要求1标题、作者(可多人,但不超过三人,排名分先后) ;2背景或关于该类方法的概述。可在通用选题中一个题目中选择某一小类的问题进行研究,或

6、选择一个专用选题讨论;3所选择的方法的讨论(包括效果、可实现性,至少两种以上的方法,以及详细的实现流程) ;4源程序及详细说明;5结论,包括实际效果以及与预期的对比及原因分析;6参考文献,不少于 8 篇,必须有杂志文章 4 篇;7篇幅不少于 4000 字。九、实验(课程设计)报告样例数值方法提高图像分辨率的研究作者:XXX, XXX, XXX单位:南京理工大学摘要:本文采用了两种插值方法提高图像分辨率, (略) 本实验的程序是在VB 环境中完成的。关键字:象素 分辨率一、提高图像分辨率的背景图像分辨率(即区分细节的程度)与采样点和灰度级的个数紧密相关。(略)二、预处理步骤直方图均衡化原理 :由

7、于原图像较为暗淡,故采用直方图均衡化增强其整体对比度。(略)流程图:计算量:乘法运算 256*3=768 次,加法运算 lenx*leny+2*256=lenx*leny+512 次。(略)三、两种插值方法 都是将预处理后的 ii(lenx,leny)插值生成 dest(2*lenx-1,2*leny-1),对应的原象素不加处理,边缘上的插值点采用简单的两点平均法,新行新列的插值点用四点平均法,所有的插值点都是用原象素矩阵生成的。1两点平均法开 始用 for 语句计算每个灰度级的象素数,并赋给 s(k)从子程序中读入数据给 ii(lenx,leny)计算累计概率 t( k)将 t(256)转化

8、成和原来灰度级范围一样的灰度级 t1( k) 将 ii( intx,inty)赋给变量 k,并把 t1( k)赋给 iib1(intx,inty)将 iib1(lenx,leny)赋给ii(lenx,leny) 计算每个灰度级的原始概率 p(k)原理:如图 4.1,原行原列中的插值点取两点平均法,即为拉格朗日插值的线性处理。(略)2三次的拉格朗日插值法(略)3对三次样条插值的讨论(略)所以要解得次线性方程组,(略) 。四、结论:速度:由于本程序是在 VB 环境中进行的,所以运行速度较慢,大约需 3-4 秒钟才能出来一幅图像。两种方法的比较:(略)。六源程序及详细说明(略):七参考文献:(略)十

9、、实验(课程设计)图象接口程序代码/ dibapi.h#ifndef _INC_DIBAPI#define _INC_DIBAPI/ DIB 句柄DECLARE_HANDLE(HDIB);/ DIB 常量#define PALVERSION 0x300/* DIB 宏 */ 判断是否是 Win 3.0 的 DIB#define IS_WIN30_DIB(lpbi) (*(LPDWORD)(lpbi) = sizeof(BITMAPINFOHEADER)/ 计算矩形区域的宽度#define RECTWIDTH(lpRect) (lpRect)-right - (lpRect)-left)/ 计算

10、矩形区域的高度#define RECTHEIGHT(lpRect) (lpRect)-bottom - (lpRect)-top)/ 在计算图像大小时,采用公式:biSizeImage = biWidth biHeight。/ 是 biWidth,而不是 biWidth,这里的 biWidth必须是 4 的整倍数,表示/ 大于或等于 biWidth 的,离 4 最近的整倍数。WIDTHBYTES 就是用来计算/ biWidth#define WIDTHBYTES(bits) (bits) + 31) / 32 * 4)/ PCX 文件头结构typedef structBYTE bManufac

11、turer;BYTE bVersion;BYTE bEncoding;BYTE bBpp;WORD wLeft;WORD wTop;WORD wRight;WORD wBottom;WORD wXResolution;WORD wYResolution;BYTE bPalette48;BYTE bReserved;BYTE bPlanes;WORD wLineBytes;WORD wPaletteType;WORD wSrcWidth;WORD wSrcDepth;BYTE bFiller54; PCXHEADER;/ 函数原型BOOL WINAPI PaintDIB (HDC, LPRECT

12、, HDIB, LPRECT, CPalette* pPal);BOOL WINAPI CreateDIBPalette(HDIB hDIB, CPalette* cPal);LPSTR WINAPI FindDIBBits (LPSTR lpbi);DWORD WINAPI DIBWidth (LPSTR lpDIB);DWORD WINAPI DIBHeight (LPSTR lpDIB);WORD WINAPI PaletteSize (LPSTR lpbi);WORD WINAPI DIBNumColors (LPSTR lpbi);WORD WINAPI DIBBitCount(LP

13、STR lpbi);HGLOBAL WINAPI CopyHandle (HGLOBAL h);BOOL WINAPI SaveDIB (HDIB hDib, CFileHDIB WINAPI ReadDIBFile(CFileBOOL WINAPI DIBToPCX256(LPSTR lpDIB, CFileHDIB WINAPI ReadPCX256(CFile#endif /!_INC_DIBAPI/ */ 文件名: dibapi.cpp/ DIB(Independent Bitmap) API 函数库:/ PaintDIB() - 绘制 DIB 对象/ CreateDIBPalette

14、() - 创建 DIB 对象调色板/ FindDIBBits() - 返回 DIB 图像象素起始位置/ DIBWidth() - 返回 DIB 宽度/ DIBHeight() - 返回 DIB 高度/ PaletteSize() - 返回 DIB 调色板大小/ DIBNumColors() - 计算 DIB 调色板颜色数目/ CopyHandle() - 拷贝内存块/ SaveDIB() - 将 DIB 保存到指定文件中/ ReadDIBFile() - 重指定文件中读取 DIB 对象/ DIBToPCX256() - 将指定的 256 色 DIB 对象保存为 256 色 PCX 文件/ Re

15、adPCX256() - 读取 256 色 PCX 文件/ *#include “stdafx.h“#include “dibapi.h“#include #include #include #include /* Dib 文件头标志(字符串“BM“,写 DIB 时用到该常数) */#define DIB_HEADER_MARKER (WORD) (M m_hObject;/ 选中调色板hOldPal = :SelectPalette(hDC, hPal, TRUE);/ 设置显示模式:SetStretchBltMode(hDC, COLORONCOLOR);/ 判断是调用 StretchDI

16、Bits()还是 SetDIBitsToDevice()来绘制 DIB 对象if (RECTWIDTH(lpDCRect) = RECTWIDTH(lpDIBRect) / wUsageelse / 非原始大小,拉伸。bSuccess = :StretchDIBits(hDC, / hDClpDCRect-left, / DestXlpDCRect-top, / DestYRECTWIDTH(lpDCRect), / nDestWidthRECTHEIGHT(lpDCRect), / nDestHeightlpDIBRect-left, / SrcXlpDIBRect-top, / SrcYR

17、ECTWIDTH(lpDIBRect), / wSrcWidthRECTHEIGHT(lpDIBRect), / wSrcHeightlpDIBBits, / lpBits(LPBITMAPINFO)lpDIBHdr, / lpBitsInfoDIB_RGB_COLORS, / wUsageSRCCOPY); / dwROP/ 解除锁定:GlobalUnlock(HGLOBAL) hDIB);/ 恢复以前的调色板if (hOldPal != NULL):SelectPalette(hDC, hOldPal, TRUE);/ 返回return bSuccess;/* 函数名称:* CreateD

18、IBPalette()* 参数 :* HDIB hDIB - 指向 DIB 对象的指针* CPalette* pPal - 指向 DIB 对象调色板的指针* 返回值:* BOOL - 创建成功返回 TRUE,否则返回 FALSE。* 说明 :* 该函数按照 DIB 创建一个逻辑调色板,从 DIB 中读取颜色表并存到调色板中,* 最后按照该逻辑调色板创建一个新的调色板,并返回该调色板的句柄。这样* 可以用最好的颜色来显示 DIB 图像。*/BOOL WINAPI CreateDIBPalette(HDIB hDIB, CPalette* pPal) / 指向逻辑调色板的指针LPLOGPALETTE lpPal;/ 逻辑调色板的句柄

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 重点行业资料库 > 1

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。