织梦CMS - 轻松建站从此开始!

罗索

win32开发环境下调试opencv程序的一些技巧

落鹤生 发布于 2010-04-25 16:13 点击:次 
如果在win32开发环境下,不方便使用cvShowImage显示到窗体,可以使用cvCreateVideoWriter来记录输出的图像序列
TAG:

1.如果在win32开发环境下,不方便使用cvShowImage显示到窗体,可以使用cvCreateVideoWriter来记录输出的图像序列

  1. char* outFileName = "c:\\track.avi"
  2. //int outCompressCodec = CV_FOURCC('D', 'I', 'V', 'X'); 
  3. //int outCompressCodec = CV_FOURCC('P', 'I', 'M', '1'); 
  4. int outCompressCodec  = -1  ////如果你不知道什么codec,设置为-1 
  5.  
  6. double outFPS = 25; 
  7. CvSize outFrameSize = cvSize(320, 240); 
  8. videoWriter = cvCreateVideoWriter(outFileName, -1, outFPS,outFrameSize);  
  9.  
  10. while(true
  11.  cvWriteFrame(videoWriter, image); 
  12.  
  13. cvReleaseVideoWriter(&videoWriter); 

2.不方便使用printf,cout等输出

采用写log的方法

 

  1. FILE *stream; 
  2. stream = fopen( "fprintf.txt""w" ); 
  3. fprintf(stream,"glVertex3f(%f,%f,%f); \n",x,y,z); 
  4. fclose( stream ); 


3.自己写的绘制轮廓线,比较灵活一些
 

  1. inline WW_RETURN drawContours(IplImage *dst) 
  2.  CvSeqReader reader;    
  3.  int i; 
  4.  CvPoint pt,pt_pre;  
  5.  
  6.  for (; contour != NULL; contour = contour->h_next) 
  7.  { 
  8.   cvStartReadSeq(contour, &reader);  
  9.   int N = contour->total; 
  10.    
  11.   for (i = 0; i < N+1; i++) 
  12.   {     
  13.    CV_READ_SEQ_ELEM(pt, reader); 
  14.    if(i!=0) cvLine(dst,pt,pt_pre,CV_RGB(20,0,250),2,CV_AA, 0 );  
  15.    pt_pre = pt; 
  16.   }   
  17.  }  
  18.  return WW_OK; 

4.在图像中绘制一个十字标记

  1. inline WW_RETURN drawCorssMark(IplImage *dst,CvPoint pt) 
  2. /************************************************* 
  3.   Function:        main_loop 
  4.   Description:     绘制一个十字标记      
  5.   Calls:          
  6.   Called By:      
  7.   Input:           RGB image,  pt               
  8.   Output:         
  9.   Return:         
  10.   Others:          需要检查坐标是否越界 to do list 
  11. *************************************************/ 
  12.   
  13.  const int cross_len = 20; 
  14.  CvPoint pt1,pt2,pt3,pt4; 
  15.  pt1.x = pt.x; 
  16.  pt1.y = pt.y - cross_len; 
  17.  pt2.x = pt.x; 
  18.  pt2.y = pt.y + cross_len; 
  19.  pt3.x = pt.x - cross_len; 
  20.  pt3.y = pt.y; 
  21.  pt4.x = pt.x + cross_len; 
  22.  pt4.y = pt.y; 
  23.  
  24.  cvLine(dst,pt1,pt2,CV_RGB(230,255,0),2,CV_AA, 0 );  
  25.  cvLine(dst,pt3,pt4,CV_RGB(230,255,0),2,CV_AA, 0 ); 
  26.   
  27.  return WW_OK; 

 

(hardVB)
本站文章除注明转载外,均为本站原创或编译欢迎任何形式的转载,但请务必注明出处,尊重他人劳动,同学习共成长。转载请注明:文章转载自:罗索实验室 [http://www.rosoo.net/a/201004/9253.html]
本文出处:CSDN博客 作者:hardVB
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 验证码:点击我更换图片
栏目列表
将本文分享到微信
织梦二维码生成器
推荐内容