【OpenCV笔记 07】OpenCV中线段的绘制和文本的插入

27 篇文章 0 订阅

1.本文将先介绍OpenCV中线段的绘制和文本的插入,使用到的函数line() putText()(前面的一片博文已经介绍过)

2.其次将应用于绘制大众车标的示例代码和运行结果一并附上。

Line

绘制连接两个点的线段

void cvLine( CvArr* img, CvPoint pt1, CvPoint pt2, CvScalar color,
             int thickness=1, int line_type=8, int shift=0 );
img
图像。
pt1
线段的第一个端点。
pt2
线段的第二个端点。
color
线段的颜色。
thickness
线段的粗细程度。
line_type
线段的类型。
8 (or 0) - 8-connected line(8邻接)连接 线。
4 - 4-connected line(4邻接)连接线。
CV_AA - antialiased 线条。
shift
坐标点的小数点位数。

函数cvLine 在图像中的点1和点2之间画一条线段。线段被图像或感兴趣的矩形(ROI rectangle)所裁剪。对于具有整数坐标的non-antialiasing 线条,使用8-连接或者4-连接Bresenham 算法。画粗线条时结尾是圆形的。画 antialiased 线条使用高斯滤波。要指定线段颜色,用户可以使用使用宏CV_RGB( r, g, b )。

代码如下:

/*OpenCV其他基本的图形绘制,
本文用到函数有circle(), line(), putText()
2016年7月14日
*/
#include<opencv2/core/core.hpp>
#include<opencv2/highgui/highgui.hpp>
#include "opencv2/imgproc/imgproc.hpp"
#include<iostream>
using	namespace cv;
#define WinName1 "大众 VolksWagen" //定义宏,用于窗口命名
#define Win_Width 800 //定义宏,用于设置窗口大小

int main(int argc, char* argv)
{
	Mat BG(Win_Width, Win_Width, CV_8UC3, Scalar(255,70,0));//创建一个800x800的画布BG,背景颜色为蓝色
	//logo也可用circle()和polylines()设置
	//logo的分为两部分,圆和图案部分,其中图案上呈“V”形,下呈“W”形
	circle(BG, Point(400, 400), 300, Scalar(255,255,255), 6, 8, 0);//创建外圆,半径为300,线宽为6,颜色为蓝色,下同

	cv::line(BG, Point(285,122), Point(395,395), Scalar(255,255,255), 6, 8, 0);//line1,"V"的左半部分
	cv::line(BG, Point(516, 122), Point(405, 395), Scalar(255,255,255), 6, 8, 0);//line2,"V"的右半部分

	cv::line(BG, Point(122, 285), Point(285, 677), Scalar(255,255,255), 6, 8, 0);//line3,"W"的左半部分左倾斜线
	cv::line(BG, Point(395, 405), Point(285, 677), Scalar(255,255,255), 6, 8, 0);//line4,"W"的左半部分右倾斜线

	cv::line(BG, Point(405, 405), Point(516, 677), Scalar(255,255,255), 6, 8, 0);//line5,"W"的右半部分左倾斜线
	cv::line(BG, Point(677, 285), Point(516, 677), Scalar(255,255,255), 6, 8, 0);//line6,"W"的右半部分右倾斜线

	cv::line(BG, Point(395,395), Point(405, 395), Scalar(255,255,255), 6, 8, 0);//line7,字母V短横线
	cv::line(BG, Point(395, 405), Point(405,405), Scalar(255,255,255), 6, 8, 0);//line8,字母W短横线

	//在图中插入文字
	putText(BG, "VolksWagen", Point(260, 760), CV_FONT_HERSHEY_COMPLEX_SMALL, 2, Scalar(0,0,0));
	imshow(WinName1, BG);
	waitKey();
	return 0;
}
//PS:本文所有线段坐标,均为在AutoCAD自行度量并设置,只求效果相似。

运行结果:


  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值