• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

C++ cvPutText函数代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

本文整理汇总了C++中cvPutText函数的典型用法代码示例。如果您正苦于以下问题:C++ cvPutText函数的具体用法?C++ cvPutText怎么用?C++ cvPutText使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。



在下文中一共展示了cvPutText函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。

示例1: cvInitFont

void AAMFit::CreateStat( IplImage *pFrame, int pMode, bool pDrawNumbers, CvScalar pRGB )
{
	CvFont font;
	char text[20];

	cvInitFont( &font, CV_FONT_HERSHEY_SIMPLEX, 0.1, 1.0, 0, 1, CV_AA );
	//_model->Draw(pFrame, pMode);

	if( _smoothedImagePoints.empty() )
	{
		for( int i = 0; i < _imagePoints.size(); i++ )
		{
			cvCircle( pFrame, cvPoint( _imagePoints[i].x, _imagePoints[i].y), 3, pRGB, -1 );

			if( pDrawNumbers )
			{
				sprintf( text, "%d", i );
				cvPutText( pFrame, text, cvPoint(_imagePoints[i].x, _imagePoints[i].y), &font, cvScalar(255, 255, 255, 0) );
			}
		}
	}
	else
	{
		for( int i = 0; i < _smoothedImagePoints.size(); i++ )
		{
			cvCircle( pFrame, cvPoint( _smoothedImagePoints[i].x, _smoothedImagePoints[i].y), 3, pRGB, -1 );

			if( pDrawNumbers )
			{
				sprintf( text, "%d", i );
				cvPutText( pFrame, text, cvPoint(_smoothedImagePoints[i].x, _smoothedImagePoints[i].y), &font, cvScalar(255, 255, 255, 0) );
			}
		}
	}
}
开发者ID:aodkrisda,项目名称:face-gesture-api,代码行数:35,代码来源:AAMFit.cpp


示例2: cvZero

// Draw graphs      -- todo, adjust to fit in window
void Painting::drawGraph()
{
    // Paint the canvas white
    cvZero(mImage);
    cvRectangleR(mImage,cvRect(0,0,500,500),cvScalar(255,255,255), -1);

    CvFont font;
    double hScale=0.5;
    double vScale=0.5;
    int    lineWidth=1;
    cvInitFont(&font,CV_FONT_HERSHEY_SIMPLEX|CV_FONT_ITALIC, hScale,vScale,0,lineWidth);

    // Add text to canvas
    cvPutText (mImage,"Left",cvPoint(20,50), &font, cvScalar(200,0,0));
    cvPutText (mImage,"Right",cvPoint(420,50), &font, cvScalar(0,200,0));

    // Iterate the vector of data and center the selected objects
    if(mData.size())
    {
        int xScale = 200;
        int yScale = 20;
        int xOffSet = 250 - mData[mSelect].timeStamp * xScale;
        int yOffSet1 = 240 + mData[mSelect].pulsefreq * yScale;
        int yOffSet2 = 250 + mData[mSelect].blinkingfreq * yScale;
        int yOffSet3 = 260 + mData[mSelect].breathingfreq * yScale;
        int t = 1; //thick

        if(mSelect == 0)
            t = -1;

        drawCircle(mImage,cvPoint(mData[0].timeStamp * xScale + xOffSet,yOffSet1 - mData[0].pulsefreq * yScale),0,t);
        drawCircle(mImage,cvPoint(mData[0].timeStamp * xScale + xOffSet,yOffSet2 - mData[0].blinkingfreq * yScale),1,t);
        drawCircle(mImage,cvPoint(mData[0].timeStamp * xScale + xOffSet,yOffSet3 - mData[0].breathingfreq * yScale),2,t);

        for(unsigned int i = 1; i<mData.size(); i++)
        {
            int thick = 1;
            if((unsigned)mSelect == i)
                thick = -1;
            // Pulse
            drawCircle(mImage,cvPoint(mData[i].timeStamp * xScale + xOffSet, yOffSet1 - mData[i].pulsefreq * yScale),0,thick);
            cvLine(mImage,cvPoint(mData[i].timeStamp * xScale + xOffSet, yOffSet1 - mData[i].pulsefreq * yScale),
                   cvPoint(mData[i-1].timeStamp * xScale + xOffSet, yOffSet1 - mData[i-1].pulsefreq * yScale),cvScalar(0,0,255));
            // Blinking
            drawCircle(mImage,cvPoint(mData[i].timeStamp * xScale + xOffSet, yOffSet2 - mData[i].blinkingfreq * yScale),1,thick);
            cvLine(mImage,cvPoint(mData[i].timeStamp * xScale + xOffSet, yOffSet2 - mData[i].blinkingfreq * yScale),
                   cvPoint(mData[i-1].timeStamp * xScale + xOffSet, yOffSet2 - mData[i-1].blinkingfreq * yScale),cvScalar(0,255,0));
            // Breathing
            drawCircle(mImage,cvPoint(mData[i].timeStamp * xScale + xOffSet, yOffSet3 - mData[i].breathingfreq * yScale),2,thick);
            cvLine(mImage,cvPoint(mData[i].timeStamp * xScale + xOffSet, yOffSet3 - mData[i].breathingfreq * yScale),
                   cvPoint(mData[i-1].timeStamp * xScale + xOffSet, yOffSet3 - mData[i-1].breathingfreq * yScale),cvScalar(255,0,0));
        }
    }

    cvShowImage(WindowName, mImage);

}
开发者ID:fatma-meawad,项目名称:food-recognition-project,代码行数:58,代码来源:painting.cpp


示例3: video

   /* draw to video canvas */
   static void video (
         GtkWidget      *widget,
         GdkEventExpose *eev){

      //gtk_widget_queue_draw(GTK_WIDGET(widget));

      if(!start) return;

      if(cv_image!=NULL){

        double t =  microtime();

        /* vypsání ladícího textu */
        CvFont font;
        double hScale=0.5;
        double vScale=0.5;
        int lineWidth=1;
        char buffer[125];

        cvFlip(cv_image, cv_image, 1);

         cvInitFont(&font,CV_FONT_HERSHEY_SIMPLEX|CV_FONT_ITALIC, hScale, vScale, 0, lineWidth);
         sprintf(buffer,"Treshold %d/255 [key m,n]", treshold);
         cvPutText (cv_image, buffer, cvPoint(10, 20), &font, cvScalar(0, 255, 0));
         cvLine(cv_image, cvPoint(260,15), cvPoint(260 + treshold,15), cvScalar(0, 255, 0), 10, 4);

         sprintf(buffer,"Timer: %f | %f | %f | %f", timer[0], timer[1], timer[2], timer[3]);
         cvPutText (cv_image,buffer,cvPoint(10,40), &font, cvScalar(255, 0, 0));
         sprintf(buffer,"Fps: %d ", fps);
         cvPutText (cv_image,buffer,cvPoint(10,60), &font, cvScalar(255, 0, 0));

         //převedení opencv do gtk
         GdkPixbuf * pix = gdk_pixbuf_new_from_data(
               (guchar*)cv_image->imageData,
               GDK_COLORSPACE_RGB,
               FALSE,
               cv_image->depth,
               cv_image->width,
               cv_image->height,
               cv_image->widthStep,
               NULL,
               NULL);
          //gtkImg = gtk_image_new_from_pixbuf (pix);
         gdk_draw_pixbuf (widget->window,
                      widget->style->fg_gc[GTK_WIDGET_STATE (widget)],
                      pix,
                      0, 0, 0, 0, 640, 480, GDK_RGB_DITHER_NONE, 0, 0 );
         //gtk_widget_queue_draw(widget);
         gdk_pixbuf_unref (pix);
         
         timer[2] =  microtime() - t;
      } else {
         //printf("ERROR: Video nebylo načteno.\n");
      }

      currently_framing = 0;
   }
开发者ID:Varhoo,项目名称:Fingerpaint,代码行数:58,代码来源:main.cpp


示例4: main

int main (int argc, char **argv)
{
    int width=960, height=640;
    IplImage *img=0;
    double c, f;
    f = cvGetTickFrequency()*1000;
    
    int cx = width/2;
    int cy = height/2;
    double radius = 100;
    double angle = 0;
    CvScalar color = cvScalarAll(255);
    
    CvFont font;
    cvInitFont(&font, CV_FONT_HERSHEY_SIMPLEX, 0.5, 1.0, 1.0, 1, CV_AA);
    
    cvNamedWindow ("hexagon", CV_WINDOW_AUTOSIZE);
    while (1) {
        
        // (1)allocate and initialize an image
        img = cvCreateImage(cvSize(width, height), IPL_DEPTH_8U, 3);
        if(img == 0) return -1;
        cvZero(img);
        
        // (2) draw hexagon
        c = cvGetTickCount();
        myHexagon(img, cx, cy, radius, angle, color);
        printf("%fms\n", (cvGetTickCount()-c)/f);
        
        // (3)show the iamge, and press some key
        cvPutText(img, "Coordinate Right(D) Left(A) Up(W) Down(X)", cvPoint(10, 20), &font, cvScalarAll(255));
        cvPutText(img, "Rotate Right(R) Left(E)", cvPoint(10, 40), &font, cvScalarAll(255));
        cvPutText(img, "Radius Big(V) Small(C)", cvPoint(10, 60), &font, cvScalarAll(255));
        cvPutText(img, "Quit(Q, esc)", cvPoint(10, 80), &font, cvScalarAll(255));
        char s[64];
        sprintf(s, "cx:%d cy:%d radius:%f angle:%f", cx, cy, radius, angle);
        cvPutText(img, s, cvPoint(10, 110), &font, cvScalarAll(255));
        
        cvShowImage ("hexagon", img);
        char key = cvWaitKey (0);
        if (key == 27 || key == 'q') break;
        else if (key == 'r') angle += 5;
        else if (key == 'e') angle -= 5;
        else if (key == 'a') cx -= 5;
        else if (key == 'd') cx += 5;
        else if (key == 'w') cy -= 5;
        else if (key == 'x') cy += 5;
        else if (key == 'v') radius += 5;
        else if (key == 'c') radius -= 5;
    }
    
    cvDestroyWindow("hexagon");
    cvReleaseImage(&img);
    
    return 0;
}
开发者ID:shugoyamaguchi,项目名称:computer_vision,代码行数:56,代码来源:hexagon.c


示例5: cvCloneImage

void Bot::make()
{
	camera->update();
	if(camera->getFrame()){
		//
		// получаем кадр с камеры
		//
		if(image==0){
			image = cvCloneImage(camera->getFrame());
		}
		else{
			cvCopy(camera->getFrame(), image);
		}

		// для хранения центра объекта
		CvPoint2D32f point;

		//
		// передаём кадр на обработку детектору
		//
		bool result = detector->getCenter( image, point, BOT_THRESHOLD);

		char buf[128]; // для вывода информации

		if(result){
			//
			// объект обнаружен
			//

			printf("[i][Bot] point: %.2f : %.2f \n", point.x, point.y);

			if(gimbal){
				gimbal->make( cvPoint(image->width/2, image->height/2), cvPointFrom32f(point) );
			}

			// отметим центр
			cvCircle(image, cvPointFrom32f(point), 3, CV_RGB(0, 255, 0), 2);

			// выводим сообщение в верхнем левом углу картинки
			sprintf(buf, "Object detected: %.2f : %.2f", point.x, point.y);
			cvPutText(image, buf, cvPoint(10, 20), &font, CV_RGB(0, 255, 0));
		}
		else{
			//
			// объект не обнаружен
			//

			// выводим сообщение в верхнем левом углу картинки
			sprintf(buf, "Cant find object!");
			cvPutText(image, buf, cvPoint(10, 20), &font, CV_RGB(255 , 0, 0));
		}

		cvShowImage(window_name, image);
	}
}
开发者ID:Aadi2110,项目名称:openrobovision,代码行数:55,代码来源:bot.cpp


示例6: pthread_mutex_lock

void KfieldGui::DisplayErrors(float DistError, float RotError) {
	pthread_mutex_lock(&lock);

	tmp = Kutils::to_string(DistError); // boost::lexical_cast<string>(Belief.confidence);
	cvPutText(field, tmp.c_str(), cvPoint((2 * 675.0 + 6050 - 200) / SCALE, (2 * 675.0 + 4050 + 650) / SCALE), &font, cvScalar(255, 255, 255));

	tmp = Kutils::to_string(RotError * TO_DEG);
	cvPutText(field, tmp.c_str(), cvPoint((2 * 675.0 + 6050 - 200) / SCALE, (2 * 675.0 + 4050 + 850) / SCALE), &font, cvScalar(255, 255, 255));
	pthread_mutex_unlock(&lock);

}
开发者ID:kouretes,项目名称:Monad,代码行数:11,代码来源:KfieldGui.cpp


示例7: sprintf

void EyeTracker::drawTrasholds()
{
	CvFont font;
	char s[20];
	sprintf(s, "HIGH THRESHOLD = %d", highThreshold);
	cvInitFont(&font, CV_FONT_HERSHEY_SIMPLEX | CV_FONT_ITALIC, 1, 1, 0, 1);
	cvPutText(grayEyeImagePts, s, cvPoint(10, 40), &font, cvScalar(255, 255, 0));

	sprintf(s, "SQUARE THRESHOLD = %d", squareThreshold);
	cvInitFont(&font, CV_FONT_HERSHEY_SIMPLEX | CV_FONT_ITALIC, 1, 1, 0, 1);
	cvPutText(grayEyeImagePts, s, cvPoint(10, 100), &font, cvScalar(255, 255, 0));
}
开发者ID:burakkoray,项目名称:EyeTracker,代码行数:12,代码来源:EyeTracker.cpp


示例8: draw_digit

void draw_digit(int width, int x, int y, char *digit,
				IplImage *debug, CvFont *font)
{
	char text[3] = { digit[0] + 48, 0, 0 };
	if (text[0] > '9') {
		text[0] -= 10;
		text[1] = '.';
	}
	CvPoint origin = cvPoint(debug->width * x / width, debug->height - y);
	cvPutText(debug, text, origin, font, cvScalar(0, 0, 0, 255));
	origin.x--;
	cvPutText(debug, text, origin, font, cvScalar(0, 0, 255, 255));
}
开发者ID:Farranco,项目名称:HyperopicBarcode,代码行数:13,代码来源:simulator.c


示例9: cvSet

void kalman::showlist(bool flag ,QPlainTextEdit *&plain)
{
	cvSet(img, cvScalar(255, 255, 255, 0));
	cvRectangle(img, cvPoint(rect.x, rect.y), cvPoint(rect.x + rect.width, rect.y + rect.height), cvScalar(255, 0, 0));

	CvFont font;
	cvInitFont(&font, CV_FONT_HERSHEY_SIMPLEX, 0.5f, 0.5f, 0, 1, 8);
	if (nl->next)
	{
		node * p = nl->next;
		if (num >= 5 || flag)
		{
			while (p)
			{
				if (p->done)
				{
					cvCircle(img, cvPoint(p->x, p->y), 5, CV_RGB(255, 0, 0), 3);
 					p->done = false;
					p = p->next;
				}
				else
				{
					qDebug("dy:%d", p->dy);
					
					if (p->dy >= 10)
					{
						sum = sum - 1;
						qDebug("The Number : %d", sum);
						cvPutText(img, sum + "", cvPoint(0, 20), &font, cvScalar(0, 0, 255));

					}
					else if (p->dy <= -10)
					{
						sum++;
						qDebug("The Number : %d", sum);
						cvPutText(img, sum + "", cvPoint(0, 20), &font, cvScalar(0, 0, 255));
					}
					plain->appendPlainText("The Number :"+QString::number(sum));
					p = deleteNode(nl, p);
				}

			}
			num = 0;
		}
		else
		{
			num++;
		}
	}
	//cvShowImage("kalman",img);
 }
开发者ID:pangr,项目名称:hog-svm,代码行数:51,代码来源:follower.cpp


示例10: capture_image

// called by the loop to actually grab the frames
int capture_image(int fd,CvFont *font, int *set_quality, IplImage* frame,CvMat *cvmat,char *capture_title,v4l2_buffer *buf, uint32_t *start_time, uint32_t *image_count) {

    // request a new frame
    if(-1 == xioctl(fd, VIDIOC_QBUF, buf)) {
        perror("Query Buffer");
        return 1;
    }

    // wait up to 2 sec for a new frame to arive
    fd_set fds;
    FD_ZERO(&fds);
    FD_SET(fd, &fds);
    struct timeval tv = {0};
    tv.tv_sec = 2;
    int r = select(fd+1, &fds, NULL, NULL, &tv);
    if(-1 == r) {
        perror("Waiting for Frame");
        return 1;
    }

    // read it
    if(-1 == xioctl(fd, VIDIOC_DQBUF, buf)) {
        perror("Retrieving Frame");
        return 1;
    }

    // convert v4l2 buffer to opencv image
    *cvmat = cvMat(height, width, CV_8UC3, (void*)buffer);
    frame = cvDecodeImage(cvmat, 1);

    // add title, reused tv from select-wait
    gettimeofday(&tv, NULL);
    time_t secs = time(0);
    struct tm *local = localtime(&secs);
    sprintf(capture_title, CAPTURE_PROTO, local->tm_hour, local->tm_min, local->tm_sec, (int)((unsigned long long)(tv.tv_usec) / 1000)%1000);

    (*image_count)++;
    printf("%s @ %2.2f fps\n",capture_title, round((float)(*image_count)*100/(time(0)-(*start_time)))/100 );
    cvPutText(frame, capture_title, cvPoint(22, 22), font, cvScalar(0,0,0,0));
    cvPutText(frame, capture_title, cvPoint(24, 24), font, cvScalar(200,200,200,0));

    // save to disk ... well RAM
    cvSaveImage("/dev/shm/mjpeg/cam_full.part.jpg", frame, set_quality);
    rename("/dev/shm/mjpeg/cam_full.part.jpg","/dev/shm/mjpeg/cam_full.jpg");

    // important to avoid mem leakage
    cvReleaseImage(&frame);

    return 0;
}
开发者ID:KoljaWindeler,项目名称:CHIP_mobile,代码行数:51,代码来源:capturev4l2.cpp


示例11: PrintText

void PrintText(IplImage* img, char* text,CvScalar color, int l1_2){
	char* num=new char[20];
	itoa(fileCount,num,10);
//	strcat(text,num);
	if(l1_2==1){
		if(text!=NULL) cvPutText(img, text, cvPoint(10, 130), &font, color);
		else cvPutText(img, num, cvPoint(10, 130), &font, color);
	}
	else{
		if(text!=NULL) cvPutText(img, text, cvPoint(10, 230), &font, color);
		else cvPutText(img, num, cvPoint(10, 230), &font, color);
	}
	delete num;
}
开发者ID:sreedal,项目名称:GC,代码行数:14,代码来源:GC_FaceOrientationMapper.cpp


示例12: while

void CvButtons::paintButtons(IplImage *img){
	vector<PushButton>::iterator it = buttonList.begin();
	while (it != buttonList.end()) {
		
		// Grab button variables:
		int x = it->x_pos;
		int y = it->y_pos;
		int w = it->width;
		int h = it->height;
		int x2 = x+w;
		int y2 = y+h;
		
		// Highlight mouseover position:
		if( mx >= x && mx <= x2 && my >= y && my <= y2 ){
			cvRectangle( img, cvPoint(x-4,y-4), cvPoint(x2+4,y2+4), C2, 1,CV_AA );
			
			// Check for mouse pressed event:
			if( me == CV_EVENT_LBUTTONDOWN/* || mf & CV_EVENT_FLAG_LBUTTON */){
				
				// Check if toggle button has to change state:
				if( it->toggle == 0 || it->toggle == 1 ) it->toggle = !it->toggle;
				
				// Call callback function:
				it->cb(it->toggle);
				
				// Draw confirmation rectangle:
				cvRectangle( img, cvPoint(x,y), cvPoint(x2,y2), C2,CV_FILLED,CV_AA );
				
				// Reset event (avoid flickering buttons):
				me = CV_EVENT_MOUSEMOVE;
			}
		}
		
		// Draw toggle state:
		if( it->toggle == 1 )
			cvRectangle( img, cvPoint(x,y), cvPoint(x2,y2), C2,CV_FILLED,CV_AA );
			
		// Draw button with text:
		cvRectangle( img, cvPoint(x,y), cvPoint(x2,y2), C2,1,CV_AA );
		if( it->toggle == 1 )
			cvPutText( img, it->text, cvPoint(x+5,y+15), &font, C1 );
		else
			cvPutText( img, it->text, cvPoint(x+5,y+15), &font, C2 );
        
        // Step to next button:
        it++;
	}
}
开发者ID:okgogo2000,项目名称:vOpenCV,代码行数:48,代码来源:cvButtons.cpp


示例13: showPoints

IplImage * showPoints(IplImage * img)
{
	int i,x1,y1,x2,y2;
	CvFont font; 
	cvInitFont(&font,CV_FONT_HERSHEY_SIMPLEX|CV_FONT_ITALIC, 0.5,0.5,0,1);

	for(i=0;i<line_set_cnt;i++)
	{
		x1 = point_val[line_set[i][0]][0];
		y1 = point_val[line_set[i][0]][1];
		x2 = point_val[line_set[i][1]][0];
		y2 = point_val[line_set[i][1]][1];
		
		if(x1>=0&&x2>=0)
		{
			cvLine(showim,cvPoint(x1,y1),cvPoint(x2,y2),CV_RGB(100,100,100),POINT_RADIUS);
		}
	}

	for(i=0;i<point_set_cnt;i++)
	{
		if(point_val[i][0]>=0)
		{
			cvCircle(img,cvPoint(point_val[i][0],point_val[i][1]),POINT_RADIUS,cvScalar(0,0,255),-1);
			cvPutText(img,point_set[i],cvPoint(point_val[i][0]+POINT_RADIUS,point_val[i][1]),&font,CV_RGB(100,200,255));
		}
	}

	return img;
}
开发者ID:ppdg123,项目名称:LBtool,代码行数:30,代码来源:lbt.cpp


示例14: GetMask

std::list<CvBox2D> PathObject::GetBounding(const IplImage * imgIn, IplImage * debugOut) const
{

    std::list<CvBox2D> blobList;
    if(imgIn == NULL) return blobList;
    IplImage * imgOut1 = GetMask(imgIn);
    //cvShowImage("imgout1",imgOut1);
    CvFont font;
    cvInitFont(&font, CV_FONT_HERSHEY_SIMPLEX, 1,1);
    if(imgOut1)
    {
        blobList = Zebulon::Vision::VisionUtils::GetBlobBoxes(imgOut1,.001,.95);
        if (debugOut)
        {
            for(std::list<CvBox2D>::iterator it = blobList.begin(); it != blobList.end(); it++)
            {
//                CvPoint2D32f boxCorners[4];
//                cvBoxPoints(*it,boxCorners);

                std::ostringstream s;
                s << "(" << it->angle << ")";
                cvPutText(debugOut,s.str().c_str(),cvPointFrom32f(it->center),&font,mNearColor);
                Zebulon::Vision::VisionUtils::DrawSquare(debugOut,*it,mNearColor);
            }
        }
        cvReleaseImage(&imgOut1);
    }

    return blobList;

}
开发者ID:shening,项目名称:Robotics_Club,代码行数:31,代码来源:pathobject.cpp


示例15: main

int main(int argc, char** argv) {
  CvCapture* capture = 0;
  IplImage* input = 0;
  IplImage* output = 0;
  int tick = 0, prev_tick = 0;
  double now = 0.0;
  CvFont font;
  char buffer[256];
  const char* windowName = "median";

  if (argc == 1 || (argc == 2 && strlen(argv[1]) == 1 && isdigit(argv[1][0]))) {
    capture = cvCreateCameraCapture(argc == 2 ? argv[1][0] - '0' : 0);
  } else if (argc == 2) {
    capture = cvCreateFileCapture(argv[1]);
  }
  if (!capture) {
    fprintf(stderr, "ERROR: capture is NULL \n");
    return (-1);
  }

  cvNamedWindow(windowName, CV_WINDOW_AUTOSIZE);
  cvInitFont(&font, CV_FONT_HERSHEY_SIMPLEX, 1.0, 1.0, 0.0, 1, 0);
  input = cvQueryFrame(capture);
  if (!input) {
    fprintf(stderr, "Could not query frame...\n");
    return (-1);
  }
  output = cvCreateImage(cvSize(input->width, input->height), IPL_DEPTH_8U, 3);

  while (1) {
    input = cvQueryFrame(capture);
    if (!input) {
      fprintf(stderr, "Could not query frame...\n");
      break;
    }

    process(input, output);

    sprintf(buffer, "%3.1lfms", now / 1000);
    cvPutText(output, buffer, cvPoint(50, 150), &font, CV_RGB(255, 0, 0));

    cvShowImage(windowName, output);

    //If a certain key pressed
    if (cvWaitKey(10) >= 0) {
      break;
    }

    tick = cvGetTickCount();
    now = (tick - prev_tick) / cvGetTickFrequency();
    prev_tick = tick;
  }

  cvReleaseImage(&output);

  cvReleaseCapture(&capture);
  cvDestroyWindow(windowName);

  return 0;
}
开发者ID:rito96,项目名称:3Asemester,代码行数:60,代码来源:median.c


示例16: show_message

void show_message(int predict_result, CvRect* r, IplImage* &imgDrawn)
{
    const char* actual_text;
	double hscale = 1.0;
	double vscale = 0.8;
	double shear = 0.2;
	int thickness = 2;
	int line_type = 8;
    
    if (predict_result==1) {
        actual_text="Welcome! Your Gender is Female";
    }else{
        if(predict_result==0)
            actual_text="Welcome! Your Gender is Male";
        else
            actual_text = "";
    }
    
	CvFont font1;
	cvInitFont(&font1,CV_FONT_HERSHEY_DUPLEX,hscale,vscale,shear,thickness,line_type);
    cvPutText(imgDrawn, actual_text,  cvPoint(r->x+10,r->y+10),&font1, CV_RGB(0,0,250));
    
    cvNamedWindow("Drawing_and_Text", 1);
	cvShowImage("Drawing_and_Text", imgDrawn);
}
开发者ID:xqjiang,项目名称:cvproject,代码行数:25,代码来源:Recognition.cpp


示例17: run

        void run()
        {
        	cvCopyImage(*mInputImage, mOutputImage);
        	for (int i = mFromId; i < mToId; ++i) {
        		Craftag *tTag = mTags[i-mFromId];
				if (tTag->isPresent()){
					wykobi::point2d<float> tCenter = tTag->getCenter();
					wykobi::point2d<float> tTop = tCenter+tTag->getYUnit();
					wykobi::point2d<float> tRight = tCenter+tTag->getXUnit();

					static const int scShift = 2;
					static const float scPrecision = 1<<scShift;
					cvLine(mOutputImage, cvPoint(tCenter.x*scPrecision, tCenter.y*scPrecision), cvPoint(tTop.x*scPrecision, tTop.y*scPrecision), sColor, 1, CV_AA, scShift);
					cvLine(mOutputImage, cvPoint(tCenter.x*scPrecision, tCenter.y*scPrecision), cvPoint(tRight.x*scPrecision, tRight.y*scPrecision), sColor, 1, CV_AA, scShift);
					//char tText[256];
					//sprintf(tText, "%d:(%.2f,%.2f),(%.2f,%.2f),(%.2f,%.2f)", i, tCenter.x, tCenter.y, tTop.x, tTop.y, tRight.x, tRight.y);
					char tText[4+1];
					sprintf(tText, "%d", i);
					cvPutText(mOutputImage, tText, cvPoint(tCenter.x, tCenter.y), &mFont, sColor);

					CvPoint2D32f tCvCorners[4];
					CvWykobiBridge::convertQuad(wykobi::scale(scPrecision, scPrecision, tTag->getCorners()), tCvCorners);
					for (int i = 0; i < 4; ++i) {
						cvLine(mOutputImage, cvPointFrom32f(tCvCorners[i]), cvPointFrom32f(tCvCorners[(i+1)%4]), sColor, 1, CV_AA, scShift);
					}
				}
			}
        	cvShowImage("CraftagIdentifier", mOutputImage);
        	char tKeyPressed = cvWaitKey(1);
        	if (tKeyPressed == 'q') stop();
        }
开发者ID:calculous,项目名称:metroscope,代码行数:31,代码来源:CraftagIdentifier.hpp


示例18: cvInitFont

void Figure::DrawLabels(IplImage *output, int posx, int posy)
{

	CvFont font;
	cvInitFont(&font,CV_FONT_HERSHEY_PLAIN,0.55,1.0, 0,1,CV_AA);

	// character size
	int chw = 6, chh = 8;

	for (vector<Series>::iterator iter = plots.begin();
		iter != plots.end();
		iter++)
	{
		string lbl = iter->label;
		// draw label if one is available
		if (lbl.length() > 0)
		{
			cvLine(output, cvPoint(posx, posy - chh / 2), cvPoint(posx + 15, posy - chh / 2),
				   iter->color, 2, CV_AA);

			cvPutText(output, lbl.c_str(), cvPoint(posx + 20, posy),
					  &font, iter->color);

			posy += int(chh * 1.5);
		}
	}

}
开发者ID:7yadavrupesh,项目名称:imageprocessing,代码行数:28,代码来源:cvplot.cpp


示例19: cvCloneImage

IplImage * BouyBaseObject::TemplateMask(const IplImage * imgIn, const IplImage * threshold, const IplImage * tmplt) const
{
    IplImage * imgOut = cvCloneImage(imgIn);
    //cvZero(imgOut);
    std::list<CvBox2D> blobList;
    blobList  = Zebulon::Vision::VisionUtils::GetBlobBoxes(threshold,.005,.95);
    IplImage * crop;
    CvFont font;
    cvInitFont(&font, CV_FONT_HERSHEY_SIMPLEX, 1,1);

    for(std::list<CvBox2D>::iterator it = blobList.begin(); it != blobList.end(); it++)
    {

        crop = Zebulon::Vision::VisionUtils::Crop(imgIn,*it);
        double score = 0;
        Zebulon::Vision::VisionUtils::GetSimpleTemplateSimilarity(crop,tmplt,score,false);
        std::ostringstream s;
        s << "(" << score << ")";
        cvPutText(imgOut,s.str().c_str(),cvPointFrom32f(it->center),&font,CV_RGB(255,255,255));
        Zebulon::Vision::VisionUtils::DrawSquare(imgOut,*it);
        if(score > mTemplateThreshold)
        {
            cvDrawCircle(imgOut,cvPointFrom32f(it->center),(crop->width/2.0),CV_RGB(255,255,255));
        }
        cvReleaseImage(&crop);
    }
    return imgOut;
}
开发者ID:ShowLove,项目名称:Robotics_Club,代码行数:28,代码来源:bouybaseobject.cpp


示例20: cvQueryFrame

void nuiVideoFileSource::update()
{
	this->output->lock();

	this->output->clear();

	frame = cvQueryFrame(cap);
	if(frame == NULL) {
		cvReleaseCapture(&cap);
		cvReleaseImage(&frame);
		cap = cvCaptureFromAVI(this->property("path").asString().c_str());
		frame = cvQueryFrame(cap);
	}
	CvFont font;
    double hScale=0.5;
    double vScale=0.5;
    int    lineWidth=1;
    cvInitFont(&font,CV_FONT_HERSHEY_SIMPLEX|CV_FONT_ITALIC, hScale,vScale,0,lineWidth);
	std::ostringstream oss;
	oss << "~ " << this->timer->getAverageFPS() << " FPS";
	cvRectangle(frame, cvPoint(150,0), cvPoint(300,20), cvScalar(0,0,0), CV_FILLED, CV_AA);
	cvRectangle(frame, cvPoint(150,0), cvPoint(300,20), cvScalar(255,100,100), 2, CV_AA);
	cvPutText (frame, oss.str().c_str(), cvPoint(155,15), &font, cvScalar(255,255,255));


	this->outputDataPacket->packData((void*)frame);
	this->output->setData(this->outputDataPacket);
	this->output->transmitData();
	this->output->unlock();
};
开发者ID:PauloFer1,项目名称:ccv2,代码行数:30,代码来源:nuiVideoFileSource.cpp



注:本文中的cvPutText函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
C++ cvQueryFrame函数代码示例发布时间:2022-05-30
下一篇:
C++ cvProcessError函数代码示例发布时间:2022-05-30
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap