使用OpenCV绘制固定的网格线集

时间:2012-09-07 12:35:40

标签: c++ opencv draw

是否可以根据OpenCV样本文件中颜色检测样本的输出,在所有交叉点绘制具有已定义点的用户定义网格线?基本上,网络摄像头需要从你上方检测人的头部和肩部。然后,当检测到一个人时,我需要网格线在那里,以便我能够知道从哪个最外面的网格(左肩)到下一个最外面的网格(右肩),在x和y轴(前额和回头)。此后,必须发送这些点以操作机械部件,如执行器和阀门。

我是一名入门级OpenCV用户,只是初学者对使用C ++的了解。 我目前在VS2008上使用OpenCV 2.1。

2 个答案:

答案 0 :(得分:4)

很难说出你的问题究竟是什么。

如果您只想绘制网格线,则没有opencv函数可以执行此操作。 要在网格中绘制线条,可以在循环中使用cv::line,然后使用嵌套循环绘制交叉点。

// assume that mat.type=CV_8UC3

dist=50;

int width=mat.size().width;
int height=mat.size().height;

for(int i=0;i<height;i+=dist)
  cv::line(mat,Point(0,i),Point(width,i),cv::Scalar(255,255,255));

for(int i=0;i<width;i+=dist)
  cv::line(mat,Point(i,0),Point(i,height),cv::Scalar(255,255,255));

for(int i=0;i<width;i+=dist)
  for(int j=0;j<height;j+=dist)
    mat.at<cv::Vec3b>(i,j)=cv::Scalar(10,10,10); 

答案 1 :(得分:0)

使用OpenCV线功能在图像上绘制网格

check_box_tag