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()
效果图