python-opencv-文字与图片的绘制

文字的绘制 

OpenCV中使用putText(img,text,org,fontFace,fontScale,color,thickness=None,lineType=None,bottomLeftOrigin=None)函数进行文字的绘制 

import cv2
image=cv2. imread('1.png')
font=cv2. FONT_HERSHEY_SIMPLEX
cv2. putText(image,'This is Python',(180,320), font,1,(180,100,255),2, cv2. LINE_AA)  #画文字
'''
参数2 text:必选参数。待绘制的文本字符串
参数3 org:必选参数。表示待绘制文本字符串的左下角在图像中的位置
参数4 fontFace:必选参数。用于设置待绘制文本的字体类型,可选类型参考HersheyFonts
参数5 fontScale:必选参数。用于设置待绘制文本的字体比例因子,字体大小为该因子乘以特定字体的基本大小
参数6 color:必选参数。用于设置待绘制文本的字体颜色
参数7 thickness:可选参数。用于设置待绘制文本的线条粗细
参数8 lineType:可选参数。用于设置线段的类型,可选8(8邻接连接线-默认)、4(4邻接连接线)和cv2.LINE_AA 为抗锯齿
'''
cv2. imshow(' dst', image)
cv2.waitKey()

需要注意的是,putText()函数的text参数只能接收特定字符,也就是说并不是所有的字符串它都能顺利绘制。例如当text参数内容中包含中文时,运行结果中文会被“?”等字符替换,原因就是putText()函数无法识别中文。 如果我们想在图像中绘制中文文字,我们需要借助其他模块或第三方库(PIL库和freetype库)的帮助

图片的绘制 

我们在之前的章节中介绍过图片的融合、叠加以及使用位运算为图像添加水印,图片的绘制有些类似,就是在原图像上再绘制一个图像。 

为了简化操作,我们直接利用原图像的缩放,将缩放后的图片绘制到原图像上,具体代码如下:

import cv2
image=cv2. imread('1.png')
height=int(image.shape[0]*0.2)
width =int(image.shape[1]* 0.2)
image_resize=cv2. resize(image,(width, height))
for i in range(height):
    for j in range(width):
        image[i+100,j+100]=image_resize[i,j]

cv2. imshow(' dst', image)
cv2.waitKey()

效果图

 

 

 

 

 

 

posted @ 2020-02-13 09:52  天子骄龙  阅读(2268)  评论(0编辑  收藏  举报