Python OpenCV 图像标记,取经之旅第 12 天
本篇博客目的:如何使用 OpenCV 在图片是添加一些图形,使用到的函数是 cv2.rectangle
和 cv2.circle
。
cv2.rectangle
该函数的作用就是在图片上绘制一个简单的矩形,语法格式如下:
该函数无返回值。
参数说明如下:
img : 待绘制矩形的图片;
pt1:矩形的起始坐标,使用元组表示,即(X 坐标,Y 坐标);
pt2:矩形的结束坐标,使用元组表示,同上;
color:要绘制矩形的边界线颜色,如果是 BGR 格式,那(255,0,0)为蓝色;
thinkness:矩形边界线的粗细像素,如果使用
-1
,将填充整个矩形;lineType 与 shift 参数,暂时用不上。
接下来在图片上标记一个红色矩形吧。
效果如下:
如果将 thinkness
设置为 -1
,会显示成一个红色的矩形。
cv2.circle
看名字就知道这是用来画圆的函数了,语法格式如下:
参数说明:
img:待绘制圆的图像;
center_coordinates:圆的中心坐标。使用元组表示,即(X 坐标值,Y 坐标值);
radius:圆的半径;
color:待绘制圆的边界线的颜色。对于 BGR,使用元组表示,例如:(255,0,0)为蓝色;
thickness:它是圆边界线的粗细像素。厚度-1 像素将以指定的颜色填充矩形。
测试代码如下:
其他函数
使用 OpenCV 在图像上进行标记,还有其他函数,例如 cv2.line()
画线,cv2.ellipse()
画椭圆,cv2.putText()
文字绘制。
看到这里,本能的就注意到文字绘制了,因为这里面经常会出现的一个大坑是中文乱码的问题,
接下来,就实际的尝试一下。
先看一下该函数的语法格式:
其中各参数说明如下:
img:待绘制文本的图像。
text:待绘制的文本字符串。
org:图像中文本字符串左下角的坐标。使用元组表示,即(X 坐标值,Y 坐标值)
font:字体类型,一些字体类型是
FONT_HERSHEY_SIMPLEX
,FONT_HERSHEY_PLAIN
fontScale:字体比例因子乘以
font-specific
基本大小color:待绘制的文本字符串的颜色。对于 BGR,使用一个元组表示。例如:(255,0,0)为蓝色。
thickness:它是线的粗细像素。
lineType:可选参数,它给出了要使用的行的类型。
bottomLeftOrigin:可选参数。如果为 true,则图像数据原点位于左下角。否则,它位于左上角。
先使用英文尝试一波。
英文明显是没有问题的。
修改成中文,查看内容是否正常输出。
果然如橡皮擦所料,中文乱码。
对于这部分,经过检索学习时候,发现解决办法比较固定,阅读下面的文章即可。
https://blog.csdn.net/ctwy291314/article/details/91492048
除了这种办法以外,还有一种,也可以尝试下。
python+opencv+freetype(支持 py2,py3)
OpenCV 尾声
1 个小时又过去了,对 Python OpenCV 相关的知识点,你掌握了吗?
空闲之余,可以订阅橡皮擦的爬虫百例课程学习爬虫知识。
**想学 Python 爬虫,可以订阅橡皮擦专栏哦~
** 🈲🈲🈲🈲 点击发现惊喜 🈲🈲🈲🈲
版权声明: 本文为 InfoQ 作者【梦想橡皮擦】的原创文章。
原文链接:【http://xie.infoq.cn/article/41e89a887413e2790f0ccee06】。文章转载请联系作者。
评论