OpenGL de プログラミング - OpenCV::離散コサイン変換
現在地 >> メニュー >> サンプルコード::OpenCV >> OpenCV::離散コサイン変換

問題


以下の入力データを離散コサイン変換せよ

double input[] = {1,2,3,4,5,6,7,8};

答え


#include <algorithm>
#include <cv.h>
#include <cxcore.h>

double input[] = {1,2,3,4,5,6,7,8};
const int ELEMENT = sizeof(input)/sizeof(input[0]);
double output[ELEMENT];

int main()
{

	CvMat dataM = cvMat(1,ELEMENT, CV_64FC1, &input[0]); //縦1,横ELEMENT
	CvMat *Output = cvCreateMat(1,ELEMENT, CV_64FC1);



	cvDCT( &dataM, Output, CV_DXT_FORWARD );
	

	std::copy(dataM.data.db,dataM.data.db + ELEMENT,std::ostream_iterator<double>(std::cout,"\n"));
	puts("------  After cvDCT  -------------");

	std::copy(Output->data.db,Output->data.db + ELEMENT,std::ostream_iterator<double>(std::cout,"\n"));


	puts("");

	return EXIT_SUCCESS;
}

メモ


入力データの個数は偶数である必要がある。