- 1、本文档共16页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
《数字图象处理》课程实验报告
《数字图象处理》课程实验报告
[程序说明] 本课程的实验内容,是在Microsoft Visual C++编程环境下实现的。其生成的可执行文件,可用于对BMP文件格式图像进行一定的图像分析和处理。主要包括:图像的显示、存储、图像的灰度运算(显示直方图、灰度拉伸、切分、线性变换等)、频域变换(傅立叶变换、离散余弦变换、沃尔什变换)、频域滤波(高通、低通、带通等)、平滑、锐化、退化、复原、边界提取、特定目标分离等操作。
[核心函数说明]
#图象显示函数
void CMyView::OnDraw(CDC* pDC)
{
// 获取文档*/
CMyDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
// 获取DIB
HDIB hDIB = pDoc-GetHDIB();
// 判断DIB是否为空
if (hDIB != NULL)
{
LPSTR lpDIB = (LPSTR) ::GlobalLock((HGLOBAL) hDIB);
// 获取DIB宽度
int cxDIB = (int) ::DIBWidth(lpDIB);
// 获取DIB高度
int cyDIB = (int) ::DIBHeight(lpDIB);
::GlobalUnlock((HGLOBAL) hDIB);
CRect rcDIB;
rcDIB.top = rcDIB.left = 0;
rcDIB.right = cxDIB;
rcDIB.bottom = cyDIB;
CRect rcDest;
// 不必缩放图像
rcDest = rcDIB;
// 输出DIB
::PaintDIB(pDC-m_hDC, rcDest, pDoc-GetHDIB(),
rcDIB, pDoc-GetDocPalette());
}
// 恢复正常光标
EndWaitCursor();
}
核心函数:
函数名称: PaintDIB()
参数: HDC hDC - 输出设备DC
LPRECT lpDCRect - 绘制矩形区域
HDIB hDIB - 指向DIB对象的指针
LPRECT lpDIBRect - 要输出的DIB区域
CPalette* pPal - 指向DIB对象调色板的指针
返回值: BOOL - 绘制成功返回TRUE,否则返回FALSE。
说明: 该函数主要用来绘制DIB对象。其中调用了StretchDIBits()或者 SetDIBitsToDevice()来绘制DIB对象。输出的设备由由参数hDC指定;绘制的矩形区域由参数lpDCRect指定;输出DIB的区域由参数lpDIBRect指定。
#打点显示图象
void CMyView::OnDisp1()
{ // 获取文档
CMyDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
// TODO: add draw code for native data here
CClientDC dc(this);
// 获取DIB
HDIB hDIB = pDoc-GetHDIB();
//指向DIB的指针
if(hDIB == NULL)
{ return ;
}
LPSTR lpDIB;
//指向DIB像素的指针
LPSTR lpDIBBits;
lpDIB = (LPSTR) ::GlobalLock((HGLOBAL) hDIB);
//找到DIB图象象素的起始位置
lpDIBBits = ::FindDIBBits(lpDIB);
。
。
BeginWaitCursor();
// 获取DIB宽度
int cxDIB = (int) ::DIBWidth(lpDIB);
// 获取DIB高度
int cyDIB = (int) ::DIBHeight(lpDIB);
LONG lLineBytes;
lLineBytes=WIDTHBYTES(cxDIB*8);
int i,j;
for(i=0; i = cyDIB-1;i++)
{ for(j=0; j =cxDIB-1 ;j++)
{
dc.SetPixel(j+cxDIB+3,cyDIB-1-i, RGB(*(lpDIBB
您可能关注的文档
- 基于网络的电能质量监测与分析系统(仅供参考).doc
- 黄冈市09届高考地理交流试题(七).doc
- 2006学年浙江省高三年级五校联考(一).doc
- 课程复变函数与积分变换A卷.doc
- 近百年北极涛动对中国冬季气候的影响-论文.doc
- 基于房价租金比的城市住宅空间价格分布实证研究.doc
- 关于城市住宅价格统计、城市居民购房能力探索.doc
- 等离子加热六流连铸中间包底吹气过程-范文.doc
- 安全专家内网安全管理系统教案.doc
- 信号处理原理期末练习题.doc
- 金融产品2024年投资策略报告:积极适应市场风格,行为金融+机器学习新发现.pdf
- 交运物流2024年度投资策略:转型十字路,峰回路又转(2023120317).pdf
- 建材行业2024年投资策略报告:板块持续磨底,重点关注需求侧复苏.pdf
- 宏观2024年投资策略报告:复苏之路.pdf
- 光储氢2024年投资策略报告:复苏在春季,需求的非线性增长曙光初现.pdf
- 公用环保2024年投资策略报告:电改持续推进,火电盈利稳定性有望进一步提升.pdf
- 房地产2024年投资策略报告:聚焦三大工程,静待需求修复.pdf
- 保险2024年投资策略报告:资产负债匹配穿越利率周期.pdf
- 政策研究2024年宏观政策与经济形势展望:共识与分歧.pdf
- 有色金属行业2024年投资策略报告:新旧需求共振&工业原料受限,构筑有色大海星辰.pdf
文档评论(0)