Я пытаюсь нарисовать график на чистом изображении, используя метод cvLine для перехода от точки к точке. Holder [] — это массив поплавков. Я проверил массив, распечатав значения, поэтому он не пустой.
IplImage* blank = cvCreateImage(cvSize(640,480),IPL_DEPTH_8U,3);
cvSet(blank, CV_RGB(255,255,255));
int i;
for (i = 0; i < height; i++)
{
cvLine(blank, cvPoint (i, holder[i]/100), cvPoint (i+1, holder[i+1]/100), cvScalar(0,255,0), 8, 1);
}
cvNamedWindow("Graph Title", 1);
cvShowImage("Graph Title", blank);
cvWaitKey(0);
Когда я запускаю этот код, все, что я получаю, это белое изображение, без сюжета.
Я смог исправить это, объявив i и holder [i] внутри цикла for, перед методом cvLine.
for (i = 0; i < height; i++)
{
int x1 = i;
int y1 = holder[i]/100;
int x2 = i + 1;
int y2 = holder[i+1];
cvLine(blank, cvPoint (x1, y1), cvPoint (x2, y2), cvScalar(0,255,0), 8, 1);
}
Других решений пока нет …