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