- 1、本文档共3页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
江南大学数字图像处理技术实验5s
实验报告
课程名称:数字图像处理技术
实验名称——实验五 图像分割技术
实验日期:2013-05-08
班级: 数媒1001 姓名:郭岩崑 学号: 0305100105 仪器编号:
一、实验目的:
1. 理解有损压缩和无损压缩的概念;
2. 理解图像压缩的主要原则和目的;
3. 了解几种常用的图像压缩编码方式。
4. 通过实验体会一些主要的分割算子对图像处理的效果,以及各种因素对分割效果的影响;
5. 掌握各种主要算子在无噪声条件下和噪声条件下的分割性能;
二、实验要求
1. 打开一副图像,转换为8级灰度图,编程实现求出该图像的Huffman编码。
2、使用Roberts 算子、Prewitt 算子、Sobel 算子或LoG (拉普拉斯-高斯)算子对“lena.bmp”图像进行边缘检测处理。
3 把实现上面要求的程序发到jsj_chen@163.com邮箱中。
备注:实验中需要的图像,同学自己提供。
实验内容
边缘检测运算(蒲瑞维特算子)
void CEdgeContourView::OnEdgePrewitt()
{
CEdgeContourDoc* pDoc = GetDocument();
LPSTR lpDIB;
LPSTR lpDIBBits;
lpDIB = (LPSTR) ::GlobalLock((HGLOBAL) pDoc-GetHDIB());
if (pDoc-GetDibImage()-DIBNumColors(lpDIB) != 256)
{
MessageBox(目前只支持256色位图的运算!, 系统提示 ,
MB_ICONINFORMATION | MB_OK);
::GlobalUnlock((HGLOBAL) pDoc-GetHDIB());
return;
}
BeginWaitCursor();
lpDIBBits = pDoc-GetDibImage()-FindDIBBits(lpDIB);
if (pDoc-GetDibImage()-PrewittDIB(lpDIBBits,
WIDTHBYTES(pDoc-GetDibImage()-DIBWidth(lpDIB) * 8),
pDoc-GetDibImage()-DIBHeight(lpDIB)))
{
pDoc-SetModifiedFlag(TRUE);
pDoc-UpdateAllViews(NULL);
}
else
{
MessageBox(分配内存失败!, 系统提示 , MB_ICONINFORMATION | MB_OK);
}
::GlobalUnlock((HGLOBAL) pDoc-GetHDIB());
EndWaitCursor();
}
BOOL CDibImage::PrewittDIB(LPSTR lpDIBBits, LONG lWidth, LONG lHeight)
{
LPSTR lpDst1;
LPSTR lpDst2;
LPSTR lpNewDIBBits1;
HLOCAL hNewDIBBits1;
LPSTR lpNewDIBBits2;
HLOCAL hNewDIBBits2;
long i,j;
int iTempH;
int iTempW;
FLOAT fTempC;
int iTempMX;
int iTempMY;
FLOAT aTemplate[9];
hNewDIBBits1 = LocalAlloc(LHND, lWidth * lHeight);
if (hNewDIBBits1 == NULL)
{return FALSE;}
lpNewDIBBits1 = (char * )LocalLock(hNewDIBBits1);
hNewDIBBits2 = LocalAlloc(LHND, lWidth * lHeight);
if (hNewDIBBits2 == NULL)
{return FALSE;}
lpNewDIBBits2 = (char * )LocalLock(hNewDIBBits2);
lpDst1 = (char *)lpNewDIBBits1;
memcpy(lpNewDIBBits1, lpDIBBits, lWidth * lHeight);
lpDst2 = (char *)lpNewDIBBits2;
memcpy(lpNew
文档评论(0)