基于opencv的小波变换代码内容摘要:

[x] += fValue。 } // 频带系数 for (i = 0。 i nHalfH。 i++) { pData[i][x] *= fRadius。 pData[nHalfH + i][x] /= fRadius。 } } } delete[] pData。 delete[] pRow。 delete[] pColumn。 } } } // 二维离散小波恢复(单通道浮点图像) void IDWT(IplImage *pImage, int nLayer) { // 执行条件 if (pImage) { if (pImagenChannels == 1 amp。 amp。 pImagedepth == IPL_DEPTH_32F amp。 amp。 ((pImagewidth nLayer) nLayer) == pImagewidth amp。 amp。 ((pImageheight nLayer) nLayer) == pImageheight) { int i, x, y, n。 float fValue = 0。 float fRadius = sqrt()。 int nWidth = pImagewidth (nLayer 1)。 int nHeight = pImageheight (nLayer 1)。 int nHalfW = nWidth / 2。 int nHalfH = nHeight / 2。 float **pData = new float*[pImageheight]。 float *pRow = new float[pImagewidth]。 float *pColumn = new float[pImageheight]。 for (i = 0。 i pImageheight。 i++) { pData[i] = (float*) (pImageimageData + pImagewidthStep * i)。 } // 多层小波恢复 for (n = 0。 n nLayer。 n++, nWidth *= 2, nHeight *= 2, nHalfW *= 2, nHalfH *= 2) { // 垂直恢复 for (x = 0。 x nWidth。 x++) { // 频带系数 for (i = 0。 i nHalfH。 i++) { pData[i][x] /= fRadius。 pData[nHalfH + i][x] *= fRadius。 } // 提升小波恢复 fValue = (pData[nHalfH][x] + pData[nHalfH + 1][x]) / 4。 pData[0][x] = fValue。 for (i。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。