如何在openCV中的图像上绘制不同的形状?

时间:2014-06-24 13:05:25

标签: opencv image-processing computer-vision

我是OpenCV的初学者。我知道C ++和Android编程。我决定改用OpenCV。 在我的项目中,使用OpenCV我通过摄像头检测红色球并获取其坐标。使用这些坐标,我想在单独的白色图像上绘制相同的线条或形状。例如,如果使用者移动球在空中写字母W,并且我已经接收到球位置的所有坐标,我想在单独的图像上绘制W.我不是要求代码,而是要求帮助和指导。

提前致谢。

1 个答案:

答案 0 :(得分:1)

如果你有坐标很容易。首先创建你的cv :: Mat并将它全部设置为白色。

cv::Mat image;
image.setTo(cv::Scalar(255,255,255));

然后,如果你有开始和结束坐标,你可以使用opencv line函数绘制一条线。

cv::line(image, cv::Point(initial_coords.x, initial_coords.y), cv::Point(end_coords.x, end_coords.y), cv::Scalar(0,0,255));

最后要使用puttext function

cv::putText(image, "text", cv::Point(coords.x, coords.y), cv::FONT_HERSHEY_SCRIPT_SIMPLEX, 2, Scalar::all(255), 3,8);

如果您需要在添加新内容之前擦除窗口,请再次使用

image.setTo(cv::Scalar(255,255,255));