OpenCV 및 이미지 처리 알고리즘의 새로운 기능입니다. C++에서 OpenCV에서 역 이산 푸리에 변환을 수행해야하지만 어떻게해야할지 모르겠다. 인터넷을 통해 검색 한 결과 답변을 찾지 못했습니다. 이 코드에서 내 프로그램에서 푸리에 변환을 수행하고 있습니다 : http://opencv.itseez.com/doc/tutorials/core/discrete_fourier_transform/discrete_fourier_transform.html. 나는 그 코드에 대해 역관계를 시도했지만, 내가 어디에서 잘못하고 있는지 알지 못한다. 내 코드는 여기 (I는 전체 코드가 잘못이라고 생각) : 사실OpenCV의 역 푸리에 변환
void doFourierInverse(const Mat &src, Mat &dst) {
normalize(src, dst, 0, -1, CV_MINMAX);
int cx = dst.cols/2;
int cy = dst.rows/2;
Mat q0(dst, Rect(0, 0, cx, cy));
Mat q1(dst, Rect(cx, 0, cx, cy));
Mat q2(dst, Rect(0, cy, cx, cy));
Mat q3(dst, Rect(cx, cy, cx, cy));
Mat tmp;
q0.copyTo(tmp);
q3.copyTo(q0);
tmp.copyTo(q3);
q1.copyTo(tmp);
q2.copyTo(q1);
tmp.copyTo(q2);
dst = dst(Rect(0, 0, dst.cols & -2, dst.rows & -2));
exp(dst, dst);
dst -= Scalar::all(1);
Mat planes[2];
polarToCart(dst, Mat::zeros(dst.rows, dst.cols, dst.type()), planes[0], planes[1]);
merge(planes, 2, dst);
idft(dst, dst, DFT_INVERSE | DFT_SCALE);
split(dst, planes);
dst = planes[0];
}
코드 및/또는 생성 된 결과와 정확히 "잘못"하다고 생각합니까? –
나는 함수 polarToCart가 함수의 크기에 반비례하지 않다고 생각한다. –