重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
这篇文章给大家分享的是有关C++ OpenCV如何绘制形状和文字的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。
创新互联建站专注于突泉网站建设服务及定制,我们拥有丰富的企业做网站经验。 热诚为您提供突泉营销型网站建设,突泉网站制作、突泉网页设计、突泉网站官网定制、微信小程序定制开发服务,打造突泉网络公司原创品牌,更为您提供突泉网站排名全网营销落地服务。
新建项目
新建一个项目opencv-0007,配置属性(VS2017配置OpenCV通用属性),然后在源文件写入#include和main方法.并加载我们常用的那个图片显示出来
运行一下效果
画直线
我们在代码的上方把源图像定义为全局变量,然后通过写不同的方法进行调用
然后在下面写MyLine()的方法实现
然后在main的方法里面加上画线操作
我们来看看效果,可以看到这个帅哥的头顶上有一条红线生成了.
画矩形
增加一个DrawRect的方法
加入调用方法
效果如下
画椭圆
定义一个新的方法DrawEllipse();
调用后的效果如下
画圆
定义一个新的方法DrawCircle();
然后加载进去,显示效果如下
画多边形
增加一个函数DrawfillPoly();
然后加载后显示的效果
绘制文字
我们再增加一个函数PutText()
显示效果如下
随意画线
我们增加一个函数DrawRendonLine()
核心代码:
void DrawRendonLine() {
//定义一个随机数
cv::RNG rng(112345);
//定义画线的两个点
cv::Point pt1;
cv::Point pt2;
//定义一个新的图像,复制源图像
cv::Mat dst;
src.copyTo(dst);
//定义一个新的显示窗体
cv::namedWindow("image2", CV_WINDOW_AUTOSIZE);
//做一个10000循环用于不停的画线
for (int i = 0; i < 100000; i++) {
//设置pt1和pt2的点大小在图像的范围内
pt1.x = rng.uniform(0, dst.cols);
pt1.y = rng.uniform(0, dst.rows);
pt2.x = rng.uniform(0, dst.cols);
pt2.y = rng.uniform(0, dst.rows);
std::cout << "do now:" << i << std::endl;
//随机定义颜色
cv::Scalar color = cv::Scalar(rng.uniform(0, 255), rng.uniform(0, 255), rng.uniform(0, 255));
//间隔50毫秒判断如果大于0就退出
if (cv::waitKey(50) > 0) {
break;
}
//开始画线
cv::line(dst, pt1, pt2, color, 1, 8);
//显示界面
cv::imshow("image2", dst);
}
}
图片显示效果
感谢各位的阅读!关于“C++ OpenCV如何绘制形状和文字”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!