1
저는 opencv에 매우 익숙합니다. matlab에서 코드를 opencv.i로 변환해야합니다. matlab.i에서 fft를 사용하는 데 문제가 있습니다. 1 차원 행렬이 있습니다. 아래에 주어진대로 fft를 적용 할 것입니다.matlab fft 함수를 opencv에서 cvDft로 변환하는 방법
a = [0;0;0;0;0;0;0;0;0.09707;0.0998;0.1202;-0.1606;-0.0913;0.1523;0.1288];
c = abs(fft(a,15));
c >> 0.3463
0.1056
0.3608
0.5705
0.4232
0.2407
0.1486
0.1488
0.1488
0.1486
0.2407
0.4232
0.5705
0.3608
0.1056
C가 나는 결과가 일부 example..my C 코드는 아래와 같습니다 좀 도와 differnt.please있는이 하나 cvDFT를 사용하는거야 matlab.while에서 가져온 내 결과입니다 ..
CvMat* fftin = cvCreateMat(nn,1,CV_64FC2);
CvMat* fftout = cvCreateMat(nn,1,CV_64FC2);
cvZero(b); ////consider a hav the value of mat b is empty for imgin
cvMerge(a,b,NULL,NULL,fftin);
cvDFT(fftin,fftout,CV_DXT_FORWARD,0);
cvSplit(fftout,out_real,out_img,0,0);
for (int i = 0;i<out_real->rows;i++)
{
double val11= cvGetReal2D(out_real,i,0);
double val12= cvGetReal2D(out_img,i,0);
val11 = abs(val11);
val12 = abs(val12);
printf("DFT value is:%f %f\n",val11,val12);
cvSetReal2D(C_out,i,0,val11);
}
OpenCV 코드의 출력을 추가 할 수 있습니까? –