一、線段繪制
cv2.line(dst,(100,100),(400,400),(0,0,255),2,cv2.LINE_AA)
參數一:目標圖片數據
參數二:當前線段繪制的起始位置(也就是兩點確定一條直線)
參數三:當前線段繪制的終止位置(也就是兩點確定一條直線)
參數四:當前線段顏色(B,G,R)
參數五:當前線段的寬度
參數六:設置當前線段的類型
import cv2
import numpy as np
newImageInfo = (500,500,3)#目標圖片的大小
dst = np.zeros(newImageInfo,np.uint8)#創建一個目標圖片#繪制線段
cv2.line(dst,(100,100),(400,400),(0,0,255))
cv2.line(dst,(100,200),(400,200),(0,255,0),5)
cv2.line(dst,(100,300),(400,300),(255,0,0),20,cv2.LINE_AA)
#當然,也可以實現三角形、矩形等形狀的繪制,也無非多幾條線段而已
cv2.imshow('dst',dst)
cv2.waitKey(0)
效果圖如下:
二、矩形、圓形以及任意多邊形的繪制
cv2.rectangle(dst,(50,100),(200,300),(255,0,0),-1)
參數一:當前的目標圖片
參數二:矩形左上角的起始點
參數三:矩形右下角位置
參數四:矩形顏色
參數五:是否填充;-1需要填充;其他正值為矩形邊緣寬度
cv2.circle(dst,(250,250),(50),(0,255,0),2)
參數一:當前的目標圖片
參數二:圓心的位置
參數三:圓的半徑
參數四:繪制圓的線條顏色
參數五:是否填充;若為-1表示填充;若為其他正值表面線條寬度
cv2.ellipse(dst,(256,256),(150,100),0,0,180,(255,255,0),-1)
參數一:當前的目標圖片
參數二:橢圓形的圓形
參數三:軸的長度,因為橢圓有倆軸,所以有兩個值
參數四:偏轉角度
參數五:圓弧的起始角度
參數六:圓弧的終止角度
參數七:線條顏色
參數八:是否填充;若為-1表示填充;若為其他正值表面線條寬度
import cv2
import numpy as np
newImageInfo = (500,500,3)
dst = np.zeros(newImageInfo,np.uint8)#繪制矩形
cv2.rectangle(dst,(50,100),(200,300),(255,0,0),-1)#繪制圓形
cv2.circle(dst,(250,250),(50),(0,255,0),2)#橢圓形、扇形、圓弧
cv2.ellipse(dst,(256,256),(150,100),0,0,180,(255,255,0),-1)#任意多邊形
points = np.array([[150,50],[140,140],[200,170],[250,250],[150,50]],np.int32)
#print(points.shape)
points = points.reshape((-1,1,2))
#print(points.shape)
cv2.polylines(dst,[points],True,(0,255,255))cv2.imshow('dst',dst)
cv2.waitKey(0)
效果圖如下:
三、文字圖片繪制
cv2.rectangle(img,(20,20),(250,250),(0,255,0),3)
參數一:原圖像
參數二:方框的起始位置
參數三:方框的終止位置
參數四:方框顏色
參數五:是否填充;若為-1表示填充;若為其他正值表面線條寬度
cv2.putText(img,'this is a cat',(45,45),font,1,(0,0,255),2,cv2.LINE_AA)
參數一:目標圖片
參數二:文字的內容
參數三:寫入的坐標
參數四:字體類型
參數五:字體大小
參數六:字體顏色
參數七:字體粗細
參數八:字體線條類型
import cv2
import numpy as np
img = cv2.imread('E:\Jupyter_workspace\study\data/cat.png',1)
font = cv2.FONT_HERSHEY_SIMPLEX#選擇字體
cv2.rectangle(img,(20,20),(250,250),(0,255,0),3)#畫一個小方框
cv2.putText(img,'this is a cat',(45,45),font,1,(0,0,255),2,cv2.LINE_AA)
cv2.imshow('src',img)
cv2.waitKey(0)
效果圖如下:
cv2.resize(img,(width,height))
參數一:所選取的照片
參數二:將該照片的寬高
import cv2
img = cv2.imread('E:\Jupyter_workspace\study\data/cat.png',1)
height = int(img.shape[0]*0.2)
width = int(img.shape[1]*0.2)
imgResize = cv2.resize(img,(width,height))
for i in range(0,height):for j in range(0,width):img[i+10,j+20] = imgResize[i,j]
cv2.imshow('src',img)
cv2.waitKey(0)
效果圖如下: