[英]Drawing a Line On A White Image in OpenCV
I'm attempting to draw a graph on a blank image, using the cvLine method to go from point to point. 我正在尝试在空白图像上绘制图形,使用cvLine方法逐点进行。 Holder[] is an array of floaters.
Holder []是一个浮动数组。 I have checked the array by printing out values, so it is not empty.
我已经通过打印出值来检查了数组,所以它不是空的。
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);
When I run this code all I get is a white image, no plot. 当我运行此代码时,我得到的只是一张白色图像,没有图。
I was able to fix it by declaring i and holder[i] inside the for loop, before the cvLine method. 我可以通过在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);
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.