Quiero dibujar una onda sinusoidal en una imagen usando openCV. He desarrollado el siguiente código, pero la salida no está llegando como se esperaba:dibujando onda sinusoidal usando 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);
}
me han verificado los valores que entra y variedad es correcta, y se representan estos valores y utilizando MATLAB. La trama MATLAB viene en onda sinusoidal. ¿Puedes decirme por qué no estoy obteniendo la trama correcta usando el código anterior?
Mi diagrama de salida de onda sinusoidal es el siguiente: se puede ver que acabo de obtener una línea horizontal en lugar de la onda sinusoidal. ¿Alguna ayuda con respecto a esto?
resuelto: Después de seguir la respuesta que obtuve la siguiente imagen:
Gracias
Perfecto !! gracias por su rápida ayuda – geeta
@geeta ¡De nada! – Alex
usó esto en su lugar, y [(int) piso (x)] = 100 + 20 * sen (0.4 * .1 * PI * x) siguiendo sus sugerencias; la trama está arriba. Gracias – geeta