下面这段小波变换的代码看不同,求大神解决,主要地方有两个,第一个是cvConvertScale(pSrc, pWavelet,1,-128);这个函数最后一个为什么设置为-128,是什么意思。第二点问题是cvCopy(pWavelet, pImage, NULL);函数中null又是什么意思,为什么要这样设置。谢谢
if (pWavelet) {
// 小波图象赋值
cvSetImageROI(pWavelet, cvRect(0, 0, pSrc->width, pSrc->height));
cvConvertScale(pSrc, pWavelet,1,-128);
cvResetImageROI(pWavelet);
// 彩色图像小波变换
IplImage *pImage = cvCreateImage(cvGetSize(pWavelet), IPL_DEPTH_32F, 1);
if (pImage) {
for (int i = 1; i <= pWavelet->nChannels; i++) {
cvSetImageCOI(pWavelet, i);
cvCopy(pWavelet, pImage, NULL);
// 二维离散小波变换
DWT(pImage, nLayer);
// 二维离散小波恢复
//IDWT(pImage, nLayer);
cvCopy(pImage, pWavelet, NULL);
}
cvSetImageCOI(pWavelet, 0);
cvReleaseImage(&pImage);
}