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

2019-04-01 17:43

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”对话框。


VC 数字图像处理实验(VC 单文档)(7).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:牛津初中英语8B - Unit6 - A - charity - walk学习案

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: