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

use*_*663 7 c++ opencv draw

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

我是初级OpenCV用户,初学者对使用C++有所了解.我目前在VS2008上使用OpenCV 2.1.

X''*_*X'' 6

很难说出您的真正问题所在。

如果只想绘制网格线,则没有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); 
Run Code Online (Sandbox Code Playgroud)