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);
    }
}

图片显示效果

下面这个是随机画线的视频:


-END-

长按下方二维码关注

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Vaccae

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值