- OpenCV Python 教程
- OpenCV Python - 首頁
- OpenCV Python - 概述
- OpenCV Python - 環境配置
- OpenCV Python - 讀取影像
- OpenCV Python - 寫入影像
- OpenCV Python - 使用 Matplotlib
- OpenCV Python - 影像屬性
- OpenCV Python - 按位運算
- OpenCV Python - 形狀和文字
- OpenCV Python - 滑鼠事件
- OpenCV Python - 新增軌跡條
- OpenCV Python - 調整大小和旋轉
- OpenCV Python - 影像閾值
- OpenCV Python - 影像濾波
- OpenCV Python - 邊緣檢測
- OpenCV Python - 直方圖
- OpenCV Python - 顏色空間
- OpenCV Python - 影像變換
- OpenCV Python - 影像輪廓
- OpenCV Python - 模板匹配
- OpenCV Python - 影像金字塔
- OpenCV Python - 影像加法
- OpenCV Python - 影像混合
- OpenCV Python - 傅立葉變換
- OpenCV Python - 捕捉影片
- OpenCV Python - 播放影片
- OpenCV Python - 從影片中提取影像
- OpenCV Python - 從影像生成影片
- OpenCV Python - 人臉檢測
- OpenCV Python - 均值漂移/CamShift
- OpenCV Python - 特徵檢測
- OpenCV Python - 特徵匹配
- OpenCV Python - 數字識別
- OpenCV Python 資源
- OpenCV Python - 快速指南
- OpenCV Python - 資源
- OpenCV Python - 討論
OpenCV Python - 繪製形狀和文字
在本章中,我們將學習如何使用 OpenCV-Python 在影像上繪製形狀和文字。讓我們首先了解如何在影像上繪製形狀。
在影像上繪製形狀
我們需要了解 OpenCV-Python 中必要的函式,這些函式可以幫助我們在影像上繪製形狀。
函式
OpenCV-Python 包(稱為 cv2)包含以下函式來繪製相應的形狀。
| 函式 | 描述 | 命令 |
|---|---|---|
| cv2.line() | 繪製連線兩點的線段。 | cv2.line(img, pt1, pt2, color, thickness) |
| cv2.circle() | 在給定點為中心的影像上繪製給定半徑的圓。 | cv2.circle(img, center, radius, color, thickness) |
| cv2.rectangle | 繪製以給定點為左上角和右下角的矩形。 | cv2.rectangle(img, pt1, pt2, color, thickness) |
| cv2.ellipse() | 繪製簡單的或粗的橢圓弧或填充橢圓扇形。 | cv2.ellipse(img, center, axes, angle, startAngle, endAngle, color, thickness) |
引數
上述函式的常用引數如下:
| 序號 | 函式及描述 |
|---|---|
| 1 | img 要在其中繪製形狀的影像。 |
| 2 | color 形狀的顏色。對於 BGR,將其作為元組傳遞。對於灰度影像,只需傳遞標量值。 |
| 3 | thickness 線條或圓等的粗細。如果對於封閉圖形(如圓形)傳遞 -1,則將填充該形狀。 |
| 4 | lineType 線條型別,無論是 8 連通、抗鋸齒線等。 |
示例
以下示例顯示如何在影像頂部繪製形狀。相應的程式如下所示:
import numpy as np
import cv2
img = cv2.imread('LENA.JPG',1)
cv2.line(img,(20,400),(400,20),(255,255,255),3)
cv2.rectangle(img,(200,100),(400,400),(0,255,0),5)
cv2.circle(img,(80,80), 55, (255,255,0), -1)
cv2.ellipse(img, (300,425), (80, 20), 5, 0, 360, (0,0,255), -1)
cv2.imshow('image',img)
cv2.waitKey(0)
cv2.destroyAllWindows()
輸出
繪製文字
cv2.putText() 函式用於在影像上寫入文字。相應的命令如下:
img, text, org, fontFace, fontScale, color, thickness)
字型
OpenCV 支援以下字型:
| 字型名稱 | 字型大小 |
|---|---|
| FONT_HERSHEY_SIMPLEX | 0 |
| FONT_HERSHEY_PLAIN | 1 |
| FONT_HERSHEY_DUPLEX | 2 |
| FONT_HERSHEY_COMPLEX | 3 |
| FONT_HERSHEY_TRIPLEX | 4 |
| FONT_HERSHEY_COMPLEX_SMALL | 5 |
| FONT_HERSHEY_SCRIPT_SIMPLEX | 6 |
| FONT_HERSHEY_SCRIPT_COMPLEX | 7 |
| FONT_ITALIC | 16 |
示例
以下程式在著名足球運動員萊昂內爾·梅西的照片上添加了一個文字標題。
import numpy as np
import cv2
img = cv2.imread('messi.JPG',1)
txt="Lionel Messi"
font = cv2.FONT_HERSHEY_SIMPLEX
cv2.putText(img,txt,(10,100), font, 2,(255,255,255),2,cv2.LINE_AA)
cv2.imshow('image',img)
cv2.waitKey(0)
cv2.destroyAllWindows()
輸出
廣告