我正在尝试在空白图像上绘制图形,使用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);
当我运行此代码时,我得到的是一个白色图像,没有绘图。
答案 0 :(得分:0)
我能够通过在cvLine方法之前在for循环中声明i和holder [i]来修复它。
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);
}