私はC APIを使用してOpenCVアプリケーションに取り組んでいます。関数にランダムな太さを持たせようとしてcvLine
いるので、最初に描画するときは 3 の太さになり、2 回目はおそらく 10 になります。現在、描画するたびに均一な太さです。実装してみましcvRandInt
たが、調査してもこの機能の使い方がわかりません。
CvRNG rng;
int thickness=cvRandInt(&rng);
IplImage* imgScribble = NULL;
while(true )
{
IplImage *frame=0;
frame=cvQueryFrame(capture);
if( !frame ) break;
if(imgScribble == NULL)
{
imgScribble = cvCreateImage(cvGetSize(frame), 8, 3);
}
// Holds the yellow thresholded image
IplImage* imgYellowThresh1 = GetThresholdedImage1(frame,1);
double moment10 = cvGetSpatialMoment(moments_yellow, 1, 0);
double moment01 = cvGetSpatialMoment(moments_yellow, 0, 1);
double area = cvGetCentralMoment(moments_yellow, 0, 0);
int lastX = posX;
int lastY = posY;
posX = moment10/area;
posY = moment01/area;
if(lastX>0 && lastY>0 && posX>0 && posY>0)
{
cvLine(imgScribble, cvPoint(posX, posY), cvPoint(lastX, lastY), cvScalar(10,255,255), thickness,CV_AA, 0);
}