简体   繁体   English

在OpenCV中的白色图像上画一条线

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM