openCVを使って画像上に正弦波を描きたい。私は、次のコードを開発したが、予想通りの出力が来ていない。opencvを使った正弦波の描画
#include "opencv2/imgproc/imgproc.hpp"
#include "opencv2/highgui/highgui.hpp"
#include <stdlib.h>
#include <stdio.h>
#include <math.h>
#include "opencv/cv.h"
#include "opencv/highgui.h"
void main()
{
double y[100];
float x;
for(x=0;x<100;x++)
{
y[(int)floor(x)]=sin(x);
}
IplImage *grf = cvCreateImage(cvSize(200, 200), IPL_DEPTH_8U, 1);
for(int x=0;x<100;x++)
{
cvLine(grf , /* the dest image */
cvPoint(x, y[x]), /* start point */
cvPoint(x+1, y[x+1]), /* end point */
CV_RGB(255, 0, 0), /* the color; green */
2, 4, 0); /* thickness, line type, shift */
}
cvNamedWindow("img", CV_WINDOW_AUTOSIZE);
cvShowImage("img", grf);
cvWaitKey(0);
cvDestroyWindow("img");
cvReleaseImage(&grf);
}
Iをyアレイに来ることは正しい値を検証し、MATLABを使用して、これらのyの値をプロットしています。 MATLABプロットは正弦波になります。上記のコードを使って正しいプロットが得られない理由を教えてください。
正弦波の出力プロットは次のようになります。正弦波ではなく水平線を取得しているのが分かります。これに関する助け?答えは以下の後、私は、次の画像を得た::、ので、あなたが設定されています
おかげ
完璧!あなたのクイックヘルプに感謝 – geeta
@geetaようこそ! – Alex
は、あなたの提案に続いてy [(int)floor(x)] = 100 + 20 * sin(0.4 * .1 * PI * x)を使用しました。プロットは上です。ありがとう – geeta