- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
图像处理实验报告书
实验报告单
院(系)计算机学院专业计算机科学与技术班级 12计科4
姓名郝耀峰 学号同组人无
实验室S4305 组号日期2015.5.28
课程数字图像处理指导老师鲁静成绩
实验项目编号 07 试验项目名称彩色图像处理-伪彩色增强
一、实验目的
利用ColorProcess程序,观察一幅彩色图像在位数转换为8位、4位、2位之后的效果以及色彩上的失真。
对不同的色彩模型进行颜色调整并观察效果。
对亮度、对比度进行调节并观察效果。
利用ch1_1程序对灰度图像做伪彩色增强,并仿照其源代码编写一个将彩色图像转换为灰度图像的函数。
二、试验环境(仪器设备、软件等)
VC6.0 windows7
三、实验原理(或要求)
频率域伪彩色增强频率域伪彩色增强的方法是:把灰度图像经傅立叶变换到频率域,在频率域内用三个不同传递特性的滤波器分离成三个独立分量;然后对它们进行逆傅立叶变换,便得到三幅代表不同频率分量的单色图像,接着对这三幅图像作进一步的处理(如直方图均衡化)
最后将它们作为三基色分量分别加到彩色显示器的红、绿、蓝显示通道,得到一幅彩色图像。
四、实验步骤
void CCh1_1View::OnFILE256ToGray()
{
// 将256色位图转换成灰度图
// 获取文档
CCh1_1Doc* pDoc = GetDocument();
// 指向DIB的指针
LPSTR lpDIB;
// 锁定DIB
lpDIB = (LPSTR) ::GlobalLock((HGLOBAL) pDoc-GetHDIB());
// 颜色表中的颜色数目
WORD wNumColors;
// 获取DIB中颜色表中的颜色数目
wNumColors = ::DIBNumColors(lpDIB);
// 判断是否是8-bpp位图
if (wNumColors != 256)
{
// 提示用户
MessageBox(非256色位图!, 系统提示 , MB_ICONINFORMATION | MB_OK);
// 解除锁定
::GlobalUnlock((HGLOBAL) pDoc-GetHDIB());
// 返回
return;
}
// 更改光标形状
BeginWaitCursor();
// 指向DIB象素指针
LPSTR lpDIBBits;
// 指向DIB象素的指针
BYTE * lpSrc;
// 循环变量
LONG i;
LONG j;
// 图像宽度
LONG lWidth;
// 图像高度
LONG lHeight;
// 图像每行的字节数
LONG lLineBytes;
// 指向BITMAPINFO结构的指针(Win3.0)
LPBITMAPINFO lpbmi;
// 指向BITMAPCOREINFO结构的指针
LPBITMAPCOREINFO lpbmc;
// 表明是否是Win3.0 DIB的标记
BOOL bWinStyleDIB;
// 获取指向BITMAPINFO结构的指针(Win3.0)
lpbmi = (LPBITMAPINFO)lpDIB;
// 获取指向BITMAPCOREINFO结构的指针
lpbmc = (LPBITMAPCOREINFO)lpDIB;
// 灰度映射表
BYTE bMap[256];
// 判断是否是WIN3.0的DIB
bWinStyleDIB = IS_WIN30_DIB(lpDIB);
// 计算灰度映射表(保存各个颜色的灰度值),并更新DIB调色板
for (i = 0; i 256; i ++)
{
if (bWinStyleDIB)
{
// 计算该颜色对应的灰度值
bMap[i] = (BYTE)(0.299 * lpbmi-bmiColors[i].rgbRed +
0.587 * lpbmi-bmiColors[i].rgbGreen +
0.114 * lpbmi-bmiColors[i].rgbBlue + 0.5);
// 更新DIB调色板红色分量
lpbmi-bmiColors[i].rgbRed = i;
// 更新DIB调色板绿色分量
lpbmi-bmiColors[i].rgbGreen = i;
// 更新DIB调色板蓝色分量
lpbmi-bmiColors
文档评论(0)