77范文网 - 专业文章范例文档资料分享平台

数字图像处理实验报告 (图像编码)(6)

来源:网络收集 时间:2019-03-29 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:或QQ: 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

else

{ if((iCount>1)||(bChar1>= 0xC0)) { lpDst[dwBuffUsed] = iCount | 0xC0; lpDst[dwBuffUsed+1] = bChar1;

dwBuffUsed += 2;

} else { lpDst[dwBuffUsed] = bChar1;

dwBuffUsed++;

}

bChar1 = bChar2;

iCount =1;

}

}

if((iCount > 1) ||(bChar1>=0xC0)) { lpDst[dwBuffUsed] = iCount | 0xC0;

lpDst[dwBuffUsed+1]= bChar1;

dwBuffUsed+=2; } else { lpDst[dwBuffUsed] = bChar1;

dwBuffUsed++;

}

}

file.WriteHuge((LPSTR)lpDst,dwBuffUsed); delete[] lpDst;

lpDst = new BYTE[769]; * lpDst = 0x0C; for(i=0;i<256;i++) {

lpDst[i*3+1] =i; lpDst[i*3+2] =i; lpDst[i*3+3] =i; }

file.Write((LPSTR)lpDst,769); return TRUE; }

5.3.2 视图类处理函数OnRleCoding()

第 26 页 共 32 页

关于 PCXCoding的函数调用部分,在图像处理的主窗口菜单栏“图像编码”下添加“行程编码”项,对应的处理函数是CDImageProcessView视图类中的OnRleCoding()函数,具体代码如下。

void CDImageProcessView::OnPcxcoding()

{

CDImageProcessDoc* pDoc = GetDocument(); LPSTR lpDIB; LPSTR lpDIBBits;

lpDIB = (LPSTR) ::GlobalLock((HGLOBAL)pDoc->GetHObject()); lpDIBBits = pDoc->m_dib.GetBits(lpDIB); if(pDoc->m_dib.GetColorNum(lpDIB)!=256) {

MessageBox(\目前只支持256色位图!\系统提示\TION| MB_OK); ::GlobalUnlock((HGLOBAL)pDoc->GetHObject());

return; } int width; int height;

width= pDoc->m_dib.GetWidth(lpDIB); height= pDoc->m_dib.GetHeight(lpDIB); BeginWaitCursor(); CString strFilePath;

strFilePath = pDoc->GetPathName();

if(strFilePath.Right(4).CompareNoCase(\

{ strFilePath=strFilePath.Left(strFilePath.GetLength()-3)+\ } else { }

CfileDialog

dlg(FALSE,\Y|OFN_OVERWRITEPROMPT,\X图像文件(*.PCX) |*.PCX|所有文件(*.*)|*.*||\ if(dlg.DoModal()!=IDOK) {

strFilePath +=\

::GlobalUnlock((HGLOBAL)pDoc->GetHObject()); EndWaitCursor();

return; }

strFilePath = dlg.GetPathName(); CFile file; CFileException fe;

第 27 页 共 32 页

if(!file.Open(strFilePath,CFile::modeCreate|CFile::modeReadWrite|CFile::shareExclusive,&fe)) {

MessageBox(\打开指定PCX文件时失败!\系统提示\TION|MB_OK); return;

}

if(PCXCoding(lpDIBBits,width,height,file)) { } else {

MessageBox(\成功保存为PCX文件!\系统提示\

MessageBox(\保存为PCX文件失败!\系统提示\TION|MB_OK); }

::GlobalUnlock((HGLOBAL)pDoc->GetHObject()); EndWaitCursor();

六、实验结果:

如下图6.1所示,分别采用哈夫曼编码、香农-范诺编码和行程编码进行图像压缩处理,对比其压缩后的数据来分析编码的优缺点。

图6.1位图图像“原始lena图像”

6.1 哈弗曼编码结果

对位图图像“原始lena图像”进行哈夫曼编码压缩,如下图6.2所示。编码效率约为99.7%,图像熵值为7.44,平均码长7.47。

第 28 页 共 32 页

图6.2哈夫曼编码运行结果

6.2 香农-范诺编码结果

对位图图像“原始lena图像”进行香农-范诺编码压缩,如下图6.3所示。编码效率约为99.2%,平均码长为7.5,图像熵值7.44。

图6.3香农-范诺编码运行结果

6.3 行程编码结果

第 29 页 共 32 页

行程编码是将位图图像,即以.bmp为后缀的图像保存为以.PCX为后缀的文件格式

图6.4保存为以.PCX为后缀的文件

若保存成功,则弹出对话框提示成功保存,如图6.5所示。

图6.5成功保存提示对话框

保存成PCX文件后,其压缩程度可从属性中看出来,如图6.6所示。

第 30 页 共 32 页

百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库数字图像处理实验报告 (图像编码)(6)在线全文阅读。

数字图像处理实验报告 (图像编码)(6).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.77cn.com.cn/wenku/zonghe/555803.html(转载请注明文章来源)
Copyright © 2008-2022 免费范文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ: 邮箱:tiandhx2@hotmail.com
苏ICP备16052595号-18
× 注册会员免费下载(下载后可以自由复制和排版)
注册会员下载
全站内容免费自由复制
注册会员下载
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: