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

VC 数字图像处理实验(VC 单文档)(7)

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

3. 编写类实现代码

在SDImageProc.cpp中添加如下类实现代码:

#include \

SDImageProc: SDImageProc() { m_pSrcImg = m_pDestImg = NULL; }

SDImageProc::~ SDImageProc() { }

BOOL SDImageProc::ImageIsValid() { if( m_pSrcImg==NULL || m_pDestImg==NULL ) return FALSE; return m_pSrcImg->IsValid(); }

说明:各图像处理函数均将在该类中定义并实现,每添加一个图像处理函数,都应首先在SDImageProc.h文件中加入函数定义代码,然后在SDImageProc.cpp文件中编写函数实现代码。

第七节 实现颜色处理功能

(一) 亮度处理

1. 在图像处理类中实现亮度处理功能

在SDImageProc类中添加并实现亮度处理函数。

首先打开SDImageProc.h文件,在其中加入亮度处理函数的定义,如下: class SDImageProc {

public: SDImageProc(); virtual ~SDImageProc(); class SDImage *m_pSrcImg,*m_pDestImg; BOOL ImageIsValid(); //源和目标图象是否有效 BOOL ModifyLight(float d); //亮度调整,-1~1

};

#endif

// !defined(AFX_SDMAGEPROC_H__CA6A65DD_DBE3_4D8F_AE45_FD6611866EE3__INCLUDED_)

再打开SDImageProc.cpp文件,在最后添加亮度处理函数的实现代码,如下:

BOOL SDmageProc::ModifyLight(float d) { if( !ImageIsValid() ) return FALSE; m_pDestImg->Create(m_pSrcImg->m_Width, m_pSrcImg->m_Height); BYTE *sd = m_pSrcImg->m_pBits; BYTE *dd = m_pDestImg->m_pBits; if(d>1) d=1; if(d<-1) d=-1; d=1+d; int i,v; BYTE colMap[256]; for(i=0;i<256;i++) { v=(INT)(i*d+0.5); if( v>255 ) v=255; colMap[i]=(BYTE)v; } for(i=0;im_ImageSize;i++) dd[i] = colMap[ sd[i] ]; return TRUE; }

***注:

(1) 以上函数中加粗的5行代码,是在后面所要实现的各图像处理函数中都需要固定写出的代码。前4行总是写在函数开始处,后1行总是写在函数结尾处。

(2) 在所有的图像处理函数中,处理得到的图像都是写入新的图像数据块中,原图像数据块的指针总是sd,新图像数据块的指针总是dd。

(3) 在编程中所需用到的图像参数变量为:

原图像的宽度:pSrcImg->m_Width;原图像的高度:pSrcImg->m_Height;原图像每行字节数:pSrcImg->m_WidthBytes;原图像数据总字节数:pSrcImg->m_ImageSize。

新图像的宽度:pDestImg->m_Width;新图像的高度:pDestImg->m_Height;新图像每行字节数:pDestImg->m_WidthBytes;新图像数据总字节数:pDestImg->m_ImageSize。

2. 建立亮度对话框,用于亮度调整参数的输入

(1) 切换到“ResourceView”选项页,展开“DIPJQ Resources”,在“Dialog”上点击右键,选中“插入Dialog”,将新建并编辑一个对话框。

(2) 右键点击对话框上的空白处,选中“属性”,在ID中输入“IDD_DIALOG_LIGHT”,在标题中输入“亮度调整参数”,点击字体按钮,将字体设为Tahoma,字体大小设为10。

(3) 添加、调整对话框上的控件至下图所示状态:

在控件工具栏上按下“静态文本”选择按钮,在对话框的适当位置拉出一个静态文本控件,在控件上点击右键—>属性,ID不变,标题输入为“亮度调整比例系数:”;添加编辑框,ID输入为“IDC_EDIT_LIGHT_D”。编辑完成后,点击保存按钮。

(4) 点击VC菜单“查看—>建立类向导”;选中“Create a new class”,点击OK;在Name编辑框中输入“CDlgLight”,点击OK,将建立CDlgLight类,并打开“MFC Class Wizard”对话框。

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

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