代码改变世界

【opencv】c++ 读取图片 & 绘制点 & 绘制文字 & 保存图片

2018-11-30 22:43  ZealouSnesS  阅读(3294)  评论(0编辑  收藏  举报

 

        //read pic
        char path[100];
        sprintf(path, "%s%d/%s", image_dir.c_str(), cam_num, filename.c_str());
        cv::Mat img = cv::imread(path);

        //draw point
        cv::circle(img, ob_points[cam_num][14], 3, cv::Scalar(0,255,255));

        //put text
        cv::putText(img,"good",ob_points[cam_num][14], cv::FONT_HERSHEY_PLAIN, 2, cv::Scalar(0,255,255));
        cv::putText(img,std::to_string(ob_points[cam_num][14].x), cv::Point2d(500,500), cv::FONT_HERSHEY_PLAIN, 2, cv::Scalar(0,255,255));

        //save img
        cv::imwrite("/home/zhangsuosheng/test.jpg",img);

 有时保存图片之后通过ubuntu图形界面看不到目标路径下保存的图片,但是通过命令行能看到,估计是ubuntu图形界面的问题,重启一下电脑就好了

 

 

cv::putText(img,std::to_string(i),p,0,2,cv::Scalar(0,0,255)); // 0为字体,2为字号
    void cv::putText(
        cv::Mat& img, // 待绘制的图像
        const string& text, // 待绘制的文字
        cv::Point origin, // 文本框的左下角
        int fontFace, // 字体 (如cv::FONT_HERSHEY_PLAIN)
        double fontScale, // 尺寸因子,值越大文字越大
        cv::Scalar color, // 线条的颜色(RGB)
        int thickness = 1, // 线条宽度
        int lineType = 8, // 线型(4邻域或8邻域,默认8邻域)
        bool bottomLeftOrigin = false // true='origin at lower left'
    )
--------------------- 
作者:PHILOS_THU 
来源:CSDN 
原文:https://blog.csdn.net/guduruyu/article/details/68491211 
版权声明:本文为博主原创文章,转载请附上博文链接!