Open Pin-Jiun opened 1 year ago
def write_text(img): text = "FONT_HERSHEY_SIMPLEX" position = (10, 40) font = cv2.FONT_HERSHEY_SIMPLEX size = 1 color = (0, 255, 255) thickness = 1 lineType = cv2.LINE_AA cv2.putText(img, text, position, font, size, color, thickness, lineType) return img
cv2.putText(img, text, position, font, size, color, thickness, lineType)
img 原圖 text 要寫的文字 position 寫文字的位置 font 字體 (可以參考下圖) size 字體大小 color 字的顏色 thickness 字的線條寬度 lineType 線條種類
字體範例
cv2.putText(img, "FONT_HERSHEY_PLAIN", (10, 80), cv2.FONT_HERSHEY_PLAIN, 1, (0, 255, 255), 1, cv2.LINE_AA) cv2.putText(img, "FONT_HERSHEY_DUPLEX", (10, 120), cv2.FONT_HERSHEY_DUPLEX, 1, (0, 255, 255), 1, cv2.LINE_AA) cv2.putText(img, "FONT_HERSHEY_COMPLEX", (10, 160), cv2.FONT_HERSHEY_COMPLEX, 1, (0, 255, 255), 1, cv2.LINE_AA) cv2.putText(img, "FONT_HERSHEY_TRIPLEX", (10, 200), cv2.FONT_HERSHEY_TRIPLEX, 1, (0, 255, 255), 1, cv2.LINE_AA) cv2.putText(img, "FONT_HERSHEY_COMPLEX_SMALL", (10, 240), cv2.FONT_HERSHEY_COMPLEX_SMALL, 1, (0, 255, 255), 1, cv2.LINE_AA) cv2.putText(img, "FONT_HERSHEY_SCRIPT_SIMPLEX", (10, 280), cv2.FONT_HERSHEY_SCRIPT_SIMPLEX, 1, (0, 255, 255), 1, cv2.LINE_AA) cv2.putText(img, "FONT_HERSHEY_SCRIPT_COMPLEX", (10, 320), cv2.FONT_HERSHEY_SCRIPT_COMPLEX, 1, (0, 255, 255), 1, cv2.LINE_AA)
def get_RGBColorCode(img, x=0 ,y=0): # method 1 (B, G, R) = cv2.split(img) # 3 channel b, g, r = B[y ,x], G[y ,x], R[y ,x] print("RGB = ({}, {}, {})".format(r, g, b))
我們的第一種方法,是將整張圖的RGB拆成三個通道, 再由各自的通道去找對應的座標點, 得到我們指定位置的RGB。
def get_RGBColorCode(img, x=0 ,y=0): # method 2 b, g, r = img[y, x] print("RGB = ({}, {}, {})".format(r, g, b))
我們的第二種方法,是直接找指定座標點的rgb,
def get_RGBColorCode(img, x=0 ,y=0): # method 2 b, g, r = img[y, x] print("RGB = ({}, {}, {})".format(r, g, b)) # 轉成我們常見的 Hex 色碼 rgb_hex = hex(r)[-2:] + hex(g)[-2:] + hex(b)[-2:] print("RGB Hex = #{}".format(rgb_hex))
def show_RGBColorCode(r=0 ,g=0, b=0): img = np.array([[[b, g, r]]], dtype=np.uint8) show_img(img)
我們傳入rgb的三個值,然後直接建立一個有三個顏色的通道,產生結果顏色。
def show_RGBColorCode_fromHEX(hex='000000'): try: r, g, b = int(hex[0:2], 16), int(hex[2:4], 16), int(hex[4:6], 16) img = np.array([[[b, g, r]]], dtype=np.uint8) show_img(img) except: print("HEX Color Code Error !")
這個是特別為了 HEX色碼 產生顏色所寫的,使用 try-except 是避免輸入色碼錯誤
https://www.wongwonggoods.com/all-posts/python/python_opencv/opencv-write-text-rgb-color-code/#%E9%81%8B%E7%94%A8_OpenCV_%E5%9C%A8%E5%9C%96%E7%89%87%E4%B8%8A%E5%AF%AB%E6%96%87%E5%AD%97%E3%80%81%E6%9F%A5%E8%89%B2%E7%A2%BC%E3%80%81%E9%A1%AF%E7%A4%BA%E8%89%B2%E7%A2%BC%E9%A1%8F%E8%89%B2
運用 OpenCV 在圖片上寫文字
img 原圖 text 要寫的文字 position 寫文字的位置 font 字體 (可以參考下圖) size 字體大小 color 字的顏色 thickness 字的線條寬度 lineType 線條種類
字體範例
運用 OpenCV 查色碼 – 方法一
我們的第一種方法,是將整張圖的RGB拆成三個通道, 再由各自的通道去找對應的座標點, 得到我們指定位置的RGB。
運用 OpenCV 查色碼 – 方法二
我們的第二種方法,是直接找指定座標點的rgb,
運用 OpenCV 查色碼 – HEX
運用 OpenCV 顯示色碼顏色 – RGB
我們傳入rgb的三個值,然後直接建立一個有三個顏色的通道,產生結果顏色。
運用 OpenCV 顯示色碼顏色 – HEX
這個是特別為了 HEX色碼 產生顏色所寫的,使用 try-except 是避免輸入色碼錯誤
https://www.wongwonggoods.com/all-posts/python/python_opencv/opencv-write-text-rgb-color-code/#%E9%81%8B%E7%94%A8_OpenCV_%E5%9C%A8%E5%9C%96%E7%89%87%E4%B8%8A%E5%AF%AB%E6%96%87%E5%AD%97%E3%80%81%E6%9F%A5%E8%89%B2%E7%A2%BC%E3%80%81%E9%A1%AF%E7%A4%BA%E8%89%B2%E7%A2%BC%E9%A1%8F%E8%89%B2