6K+ 閱讀量
我們使用 cv2.matchShapes() 函式來匹配兩個影像形狀。此函式返回一個度量值,表示影像形狀之間的相似度。此函式使用 Hu 不變數來計算度量值。度量值越低,影像形狀之間的相似度越高。在以下示例中,我們將匹配來自不同影像的形狀以及來自單個影像的形狀。語法我們使用以下語法來匹配兩個影像形狀:ret = cv2.matchShapes(cnt1, cnt1, 1, 0.0) 其中,cnt1 - 第一個影像形狀的輪廓點。cnt2 - 第二個影像形狀的輪廓點。... 閱讀更多
1K+ 閱讀量
我們可以從高斯金字塔中形成拉普拉斯金字塔。OpenCV 沒有提供任何特定的函式來構建拉普拉斯金字塔。在拉普拉斯金字塔中,影像看起來只像是邊緣影像。拉普拉斯金字塔用於影像壓縮以及影像增強。拉普拉斯金字塔中的一層是由高斯金字塔中該層與其上一層在高斯金字塔中擴充套件版本之間的差值形成的。要建立高斯金字塔中的一層,我們應用 cv2.pyrDown() 或 cv2.pyrUp() 函式。步驟要構建三層拉普拉斯金字塔,請按照以下步驟操作:... 閱讀更多
在許多情況下,我們需要使用同一影像的不同解析度和大小。在影像金字塔的概念中,我們找到原始影像的不同解析度和大小的影像。高斯金字塔是一種影像金字塔。要查詢高斯金字塔,OpenCV 為我們提供了兩個函式 cv2.pyrDown() 和 cv2.pyrUp()。函式 cv2.pyrDown() 透過刪除輸入影像中連續的行和列來降低解析度。輸出影像的寬度和高度變為輸入影像的一半,面積減小到四分之一。函式 cv2.pyrUp() 透過新增... 閱讀更多
746 閱讀量
使用 Scharr 運算元,我們可以使用一階導數計算水平和垂直方向的影像梯度。梯度是針對灰度影像計算的。您可以使用 cv2.scharr() 方法對影像應用 Scharr 運算。語法以下語法用於使用 Scharr 導數計算影像梯度:cv2.Scharr(img, ddepth, xorder, yorder) 引數 img - 原始輸入影像 ddepth - 輸出影像的所需深度。它包含有關輸出影像中儲存的資料型別的資訊。我們使用 cv2.CV_64F 作為 ddepth。它是一個 64 位... 閱讀更多
5K+ 閱讀量
要在影像上繪製折線,我們使用 cv2.polylines() 方法。我們可以在影像上繪製開放或封閉的折線。在繪製開放折線時,第一點和最後一點不會連線。語法cv2.polylines() 的語法如下:cv2.polylines(src, [pts], isClosed, color, thickness) 引數 src - 要在其上繪製折線的輸入影像。pts - 點的陣列列表。isClosed - 設定 isClosed=True 以繪製封閉折線,對於開放折線,設定 isClosed=False。color - 線的顏色。thickness - 線的厚度... 閱讀更多
2K+ 閱讀量
使用 Sobel 運算元,我們可以計算水平和垂直方向的影像梯度。梯度是針對灰度影像計算的。Laplacian 運算元使用二階導數計算梯度。語法以下語法用於使用 Sobel 和 Laplacian 導數計算影像梯度:cv2.Sobel(img, ddepth, xorder, yorder, ksize) cv2.Laplacian(img, ddepth) 引數 img - 原始輸入影像。ddepth - 輸出影像的所需深度。它包含有關輸出影像中儲存的資料型別的資訊。我們使用 cv2.CV_64F 作為 ddepth。它是一個 64 位浮點數... 閱讀更多
770 閱讀量
形態梯度計算為影像膨脹和腐蝕之間的差異。我們使用 cv2.morphologyEx() 方法計算形態梯度。形態梯度用於分割、邊緣檢測以及查詢物體的輪廓。語法以下是此方法使用的語法:cv2.morphologyEx(img, op, kernel) 其中,img - 原始輸入影像。op - 形態運算的型別。我們使用 cv2.MORPH_GRADIENT。kernel - 核心。我們可以將核心定義為 dtype 為 uint8 的全為 1 的 numpy 矩陣。步驟您可以使用以下步驟來... 閱讀更多
在本教程中,我們將瞭解如何對影像應用兩種不同的低通濾波器以平滑(去除影像噪聲)。這兩個濾波器是 filter2D 和 boxFilter。這些濾波器是空間中的二維濾波器。對影像應用二維濾波器也稱為“二維卷積運算”。這些濾波器通常稱為平均濾波器。這些濾波器的主要缺點是它們也會平滑影像中的邊緣。如果您不想平滑邊緣,則可以應用“雙邊濾波器”。雙邊濾波器操作保留邊緣。語法以下是 Filter2D 和... 閱讀更多
在透視變換中,即使在變換後,直線仍然保持直線。要應用透視變換,我們需要一個 3×3 透視變換矩陣。我們需要輸入影像上的四個點和輸出影像上相應的四個點。我們應用 cv2.getPerspectiveTransform() 方法來查詢變換矩陣。其語法如下:M = cv2.getPerspectiveTransform(pts1, pts2) 其中,pts1 - 輸入影像上四個點的陣列,pts2 - 輸出影像上相應四個點的陣列。透視變換矩陣 M 是一個 numpy 陣列。我們傳遞 M... 閱讀更多
3K+ 閱讀量
彩色(RGB)影像具有三個通道:紅色、藍色和綠色。OpenCV 中的彩色影像形狀為 [H, W, C] 格式,其中 H、W 和 C 分別表示影像的高度、寬度和通道數。所有三個通道的值範圍都在 0 到 255 之間。HLS 影像也具有三個通道:色相、亮度和飽和度通道。在 OpenCV 中,色相通道的值範圍為 0 到 179,而亮度和飽和度通道的值範圍為 0 到 255。在 OpenCV 中,使用 cv2.imread() 函式載入的彩色影像始終為 BGR 格式。要... 閱讀更多