【发布时间】:2011-11-27 06:18:57
【问题描述】:
我无法使用 FFT 扩展图像的功率谱。代码如下
void spectrumFFT(Complex<double> *f, Complex<double> *output, int width, int height){
Complex<double> *temp = new Complex<double>[width * height];
Complex<double> *singleValue = new Complex<double>();
for(int j = 0; j < height; j++){
for(int i = 0; i < width; i++){
singleValue = f[i + j * width];
Complex<double> tempSwap = singleValue->Mag();
// tempSwap assign Magnitude value from singleValue
temp[i + j * width] = tempSwap;
}
}
假设一维临时数组填充了幅度值。我的问题是如何扩展在 [0 - 255) 之间的幅度的最小值和最大值。
注意:输入 *f 已经是 2DFFT 的计算值,*输出值将填充大小的最小值和最大值。
对编程有什么想法吗?
谢谢,
问候, 一郎
【问题讨论】:
-
您有两个内存泄漏: (1) 您正在初始化
singleValue以指向动态创建的Complex<double>,然后立即将其指向其他东西。 (2) 你永远不会用temp做任何事,也永远不会用delete-ing 它。 -
您的问题不清楚。您是说要缩放数据,使最小值始终为 0,最大值始终为 255?
-
猜猜我们只是缺少一些代码(
temp被填充,后来被删除,函数范围没有右括号)。 -
忽略上面提到的
temp- 误读了一行。
标签: c++ image-processing fft