int x, y; fWvltRng = NormWvltRng; //为图像处理分配内存空间 paper51.com spOriginData = spData; http://www.paper51.com
spTransData = new short * [nHeight]; 内容来自www.paper51.com spWvltData = new short * [nHeight]; 内容来自www.paper51.com fpNormGradient = new float * [nHeight]; paper51.com
for(int i = 0; i < nHeight; i ++) 内容来自论文无忧网 www.paper51.com { spTransData[i]= new short [nWidth]; copyright paper51.com spWvltData[i] = new short[nWidth]; paper51.com fpNormGradient[i] = new float[nWidth]; 内容来自www.paper51.com
} //完成一次图像小波变换 copyright paper51.com CWvltTrans *pTrans; copyright paper51.com pTrans->DWT_TriLayers(spOriginData,spTransData, spWvltData, iHeight, iHeight_H, iWidth, iWidth_H, 3, 1.414); //小波系数的正则化处理 内容来自论文无忧网 www.paper51.com
//正则化处理后spData存放非正则化的小波系数,spWvltData存放正则化后的小波系数 内容来自论文无忧网 www.paper51.com
Wvlt_Normalize(spWvltData, iHeight, iWidth,fWvltRng); copyright paper51.com //计算小波系数的梯度信息,将其存放在spTransData中 内容来自论文无忧网 www.paper51.com
//设定显示设备的颜色灰度范围是0~255 copyright paper51.com
for(y = 0; y < nHeight; y ++) copyright paper51.com { for(x= 0; x < nWidth; x ++) paper51.com
{ fpNormGradient[y][x] = (float)spWvltData[y][x] / 255; http://www.paper51.com } } //选择线性滤波器gj(x) = x, 且v =kj gj(u) http://www.paper51.com //统计出不同频带小波系数的极大值 内容来自www.paper51.com for(y = 0; y < 3; y ++) paper51.com
{ if(y == 0) copyright paper51.com {filtCoeff[4*y] =Search_BandMax(spWvltData, 0, 0, iHeight / 8, iWidth / 8); http://www.paper51.com } 内容来自论文无忧网 www.paper51.com
filtCoeff[3*y + 1] =Search_BandMax(spWvltData, 0, (int)(pow(2,y) * iWidth / 8), (int)(pow(2,y)*iHeight / 8), (int)(pow(2,y)*iWidth / 4)); 内容来自论文无忧网 www.paper51.com filtCoeff[3*y + 2] = Search_BandMax(spWvltData,(int)(pow(2,y) * iHeight / 8), 0, (int)(pow(2,y)* iHeight / 4),(int)(pow(2,y)*iWidth / 8)); 内容来自www.paper51.com filtCoeff[3*y + 3] =Search_BandMax(spWvltData, (int)(pow(2,y) * iHeight / 8), (int)(pow(2,y) *iWidth / 8), (int)(pow(2,y)* iHeight / 4),(int)(pow(2,y)*iWidth / 4)); http://www.paper51.com } //计算得到各频带滤波器的滤波系数 内容来自论文无忧网 www.paper51.com
for(y = 0; y < 10; y++) copyright paper51.com { filtCoeff[y]= (float) 255.0 / filtCoeff[y]; 内容来自论文无忧网 www.paper51.com
filtCoeff[0] +=(float)sqrt(filtCoeff[y]); paper51.com } 内容来自论文无忧网 www.paper51.com filtCoeff[0] /= 10; //正则化后小波信息的梯度信息滤波处理 http://www.paper51.com for(y = 0; y < 3; y ++) 内容来自论文无忧网 www.paper51.com { if(y== 0) 内容来自论文无忧网 www.paper51.com {Band_Enhance(fpNormGradient,filtCoeff[3*y], 0, 0, iHeight / 8, iWidth / 8); http://www.paper51.com } http://www.paper51.com
Band_Enhance(fpNormGradient,(float)sqrt(filtCoeff[3*y + 1]) /2, 0, (int) 内容来自www.paper51.com (pow(2,y) *iWidth / 8), (int)(pow(2,y)* iHeight / 8), (int)(pow(2,y)*iWidth / 4)); 内容来自www.paper51.com Band_Enhance(fpNormGradient,(float)sqrt(filtCoeff[3*y + 2]) /2, (int)(pow(2,y) * iHeight / 8), 0,(int)(pow(2,y)* iHeight / 4), (int)(pow(2,y)*iWidth / 8)); copyright paper51.com
Band_Enhance(fpNormGradient,(float)sqrt(filtCoeff[3*y + 3]) /2, (int)(pow(2,y) * iHeight / 8),(int)(pow(2,y) * iWidth / 8), (int)(pow(2,y)* iHeight / 4),(int)(pow(2,y)*iWidth / 4)); copyright paper51.com
} //还原出滤波增强后的小波系数 内容来自论文无忧网 www.paper51.com for(y = 0; y< iHeight; y ++) 内容来自www.paper51.com
{ for(x= 0; x < iWidth; x++) http://www.paper51.com { fpNormGradient[y][x] *= (float) (fWvltRng[1] -fWvltRng[0]); 内容来自www.paper51.com fpNormGradient[y][x]/= 255.0; copyright paper51.com spWvltData[y][x]= (short) fpNormGradient[y][x] + fWvltRng[0]; 内容来自论文无忧网 www.paper51.com }} //复原增强后的小波系数 内容来自论文无忧网 www.paper51.com DIP_WvltRevers(spOriginData,spTransData, spWvltData, iHeight, iHeight_H, iWidth, iWidth_H, 3, 1.414); //将复原的图像数据进行正则化 内容来自论文无忧网 www.paper51.com Wvlt_Normalize(spOriginData,iHeight, iWidth, fWvltRng); copyright paper51.com //释放临时的数据空间 http://www.paper51.com delete spTransData; copyright paper51.com delete spWvltData; 内容来自www.paper51.com delete fpNormGradient; http://www.paper51.com } 内容来自www.paper51.com
首先要设计好文件菜单,如图5-7所示,并且指定菜单消息的ID,如图5-8所示,最后完成整个的代码部分。 内容来自www.paper51.com
内容来自论文无忧网 www.paper51.com 图2-27 菜单选项 内容来自www.paper51.com paper51.com 图2-28 定义菜单的消息ID http://www.paper51.com
voidCWvltDoc::OnDiprocEnhace() paper51.com { //TODO: Add your command handler code here http://www.paper51.com //读取数字图像的文件头,获取图像的属性参数 内容来自www.paper51.com LPBITMAPINFOHEADERlpBitmapInfoHeader = (LPBITMAPINFOHEADER)(m_pBitmap+14); http://www.paper51.com LPBITMAPFILEHEADER lpBitmapFileHeader =(LPBITMAPFILEHEADER)m_pBitmap; http://www.paper51.com unsigned char *lpData = m_pBitmap +lpBitmapFileHeader->bfOffBits; 内容来自www.paper51.com unsigned long biHeight =lpBitmapInfoHeader->biHeight; 内容来自www.paper51.com unsigned long biWidth =lpBitmapInfoHeader->biWidth; paper51.com unsigned long biAlign = (biWidth*3+3)/4 *4; paper51.com unsigned long bmSize = biHeight * biAlign; copyright paper51.com if(m_pTransfered==NULL) m_pTransfered=(unsigned char*) malloc (bmSize); http://www.paper51.com
if(m_pTransfered==NULL) return; //图像矩阵的坐标与像素数据 paper51.com
int x, y, cur; paper51.com int tempR,tempG, tempB;//正则化小波系数的波动范围,NormWvltRng[0]存放极小值,NormWvltRng[1]存放极大值 paper51.com float NormWvltRng[2]; //原始图像数据存储,数据用于图像对比度增强 内容来自论文无忧网 www.paper51.com short **pData; //分配图像数据的内存空间 内容来自论文无忧网 www.paper51.com pData = new short*[biHeight]; http://www.paper51.com for(int i = 0; i <biWidth; i++) copyright paper51.com pData[i] = new short[biWidth]; //从设备缓存中获取原始图像的数据 http://www.paper51.com
for(y = 0; y < biHeight; y ++) http://www.paper51.com
{ for(x = 0; x < biWidth; x++) 内容来自www.paper51.com { cur = y * biAlign + 3 * x; 内容来自论文无忧网 www.paper51.com tempB =lpData[cur]; copyright paper51.com tempG =lpData[cur + 1]; 内容来自www.paper51.com tempR =lpData[cur + 2]; paper51.com pData[biHeight- 1 - y][x] = 0.3 * tempR + 0.59 * tempG + 0.11 * tempB; paper51.com
} copyright paper51.com } //创建图像处理类 paper51.com CDiproc *pDIP; paper51.com
pDIP->DIP_ConsEnhance(pData, biHeight, biWidth,NormWvltRng); 内容来自www.paper51.com //将复原后的图像信息写入显示缓存中 内容来自www.paper51.com 。最小方波的展开问题的非常稀疏的系统点阵式A的结构是很有特色的。在解决反复方法中,节的变数之间的当地连结慢地下来在重复中的解决的进步而且造成低的集中率。 换句话说,高斯西顿的方法提取来自每个节的价值的只有四个邻居的表面的当地高周波数据。因此,整体的低频率的表面数据非常慢慢地繁殖,它才是稀疏问题的低集中率的主要理由。低频率部分支配问题在最小方波展开问题的计算速度问题是最主要的,而且获得一个快速的集中率, 问题的低频率部分应该被提取。这一个观念以多分辨率为基础,在该观念中一个信号就代表不同的频率,例如粗糙而精细的频带。分开地解决低频率的部分将会加速全部的系统集中率。 paper51.com 小波变换是在多频率观念中表现一个最复杂的系统的方法。在本文中 ,提出了一个解决的最小方波展开问题的有效方法,利用不连续的小浪转换 (DWT).这是在文献中呈现的工作的扩展。在部分微分方程式的解决能在被发现的小波达成的方式的领域的工作上的一些文学. 那些研究处理在小浪领域中的 PDE 结构本身有效率地解决问题。 然而,本文应用小波变换改革被从 PDE 吸取 , 而且不处理 PDE 问题本身的线系统的结构。 paper51.com
小波变换进行二重的程序分解(分析)和重建(综合)。在分解程序,一个信号被分为它的低频部分(细节).小浪系数的合量组是最初信号的多频率信号。最多接近的成份位于最低的决议水平,而且其他的水平有对应细节成份 ,最初的信号被藉由综合这些在重建程序恢复接近并且细说成份。 内容来自www.paper51.com
|