
文字的繪制
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()
效果圖


