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);
}
내가 값이 Y 배열에서 오는 검증 정확했고, MATLAB을 사용하여 이러한 y 값을 꾸몄다. MATLAB 플롯이 사인파가되고 있습니다. 왜 위의 코드를 사용하여 올바른 줄거리를 얻지 못하고 있는지 말해 줄 수 있습니까?
사인파의 출력 플롯은 다음과 같습니다. 사인파 대신 수평선이 표시되는 것을 볼 수 있습니다. 이것에 관한 도움이 필요하십니까?
해결했다, 그래서 당신은 설정과 같습니다 sin
기능은 당신에게 값 [1 -1]을 반환
완벽 !! 빠른 도움에 감사드립니다 – geeta
@geeta 환영합니다! – Alex
대신 제안 사항을 따르면 y [(int) floor (x)] = 100 + 20 * sin (0.4 * .1 * PI * x)입니다. 음모가 위입니다. 감사합니다 – geeta