39K+ 次瀏覽
要檢測影像中的矩形和正方形,我們首先檢測影像中的所有輪廓。然後遍歷所有輪廓。為每個輪廓找到近似的輪廓。如果近似輪廓中的頂點數量為 4,則我們計算縱橫比以區分矩形和正方形。如果縱橫比在 0.9 到 1.1 之間,我們將其稱為正方形,否則為矩形。請參見下面的虛擬碼。for cnt in contours: approx = cv2.approxPolyDP(cnt) if len(approx) == 4: x, y, w, h = ... 閱讀更多
3K+ 次瀏覽
要在影像上繪製填充的橢圓,我們使用 cv2.ellipse() 方法。此方法接受不同的引數來繪製不同型別的橢圓。語法 cv2.ellipse(img, center, axes, angle, start_angle, end_angle, color, thickness) 引數 img − 要在其上繪製橢圓的輸入影像。center − 橢圓的中心座標。axes − 以 (長軸長度,短軸長度) 格式表示的元組。angle − 橢圓的旋轉角度(度)。start_angle − 橢圓弧的起始角度(度)。end_angle − 橢圓弧的結束角度(度)… 閱讀更多
5K+ 次瀏覽
要檢測影像中的三角形,我們首先檢測影像中的所有輪廓。然後我們遍歷所有輪廓。為每個輪廓找到近似的輪廓。如果近似輪廓中的頂點數量為 3,則繪製輪廓並將其設定為三角形。請參見下面的虛擬碼。for cnt in contours: approx = cv2.approxPolyDP() if len(approx) == 3: cv2.drawContours() cv2.putText("Triangle") 步驟您可以使用以下步驟來檢測… 閱讀更多
6K+ 次瀏覽
函式 cv2.approxPolyDP() 將輪廓形狀逼近到具有較少頂點的另一種形狀。它接受以下引數 - cnt − 輪廓點的陣列。epsilon − 輪廓到逼近輪廓的最大距離。需要明智地選擇 epsilon 才能獲得正確的輸出。語法用於逼近輪廓形狀的語法如下:epsilon = 0.01*cv2.arcLength(cnt, True) approx = cv2.approxPolyDP(cnt, epsilon, True) 步驟您可以使用以下步驟來逼近影像中輪廓的形狀 - 匯入所需的庫。在以下所有 Python 示例中,所需的 Python 庫是 OpenCV。確保您已安裝它。import cv2… 閱讀更多
28K+ 次瀏覽
物件的邊界矩形是在影像中圍繞物件繪製的矩形。在 OpenCV 中有兩種方法可以找到邊界矩形 - 直邊界矩形它是一個直矩形,因為它不考慮物件的旋轉。可以使用函式 cv2.boundingRect() 計算它。其語法如下:x, y, w, h = cv2.boundingRect(cnt) img = cv2.rectangle(img, (x, y), (x+w, y+h), (0, 255, 0), 2) 這裡,“cnt”是輪廓點的陣列。它返回左上角座標 (x, y) 以及寬度和高度 (w, h) … 閱讀更多
彩色影像 (RGB) 有三個通道:紅色、藍色和綠色。影像表示為一個三維 numpy 陣列。影像的畫素值使用範圍為“0 到 255”的 8 位無符號整數 (uint8) 儲存。對兩幅影像執行的按位異或運算是在相應影像的這些畫素值的二進位制表示上執行的。以下是對兩幅影像執行按位異或運算的語法:cv2.bitwise_xor(img1, img2, mask=None) 這裡,img1 和 img2 是兩幅輸入影像,mask 是掩碼操作。步驟要計算兩幅影像之間的按位異或,您可以… 閱讀更多
1K+ 次瀏覽
函式 cv2.isContourConvex() 用於檢查曲線(輪廓)是否為凸的。影像中物件的輪廓是沿邊界連線所有連續點的曲線,具有相同的顏色或強度。輪廓用於形狀分析以及物件檢測和識別等。語法cv2.isContourConvex() 的語法如下:cv2.isContourConvex(cnt) 其中,“cnt”是影像中物件的輪廓點的 numpy 陣列。如果輪廓 cnt 為凸的,則返回 True,否則返回 False。步驟您可以使用以下步驟來檢查輪廓… 閱讀更多
13K+ 次瀏覽
影像中物件的輪廓對於計算影像的面積和周長非常有用。影像的輪廓是沿邊界連線所有連續點的曲線,具有相同的顏色或強度。輪廓用於形狀分析以及物件檢測和識別等。要計算物件的面積和周長,我們首先檢測物件的輪廓,然後分別應用 cv2.contourArea() 和 cv2.arcLength() 函式。語法以下是這些函式的語法:area = cv2.contourArea(cnt) perimeter = cv2.arcLength(cnt, True) 其中,“cnt”是… 閱讀更多
71K+ 次瀏覽
要比較兩幅影像,我們使用兩幅影像畫素值的均方誤差 (MSE)。相似的影像將具有較小的均方誤差值。使用此方法,我們可以比較具有相同高度、寬度和通道數的兩幅影像。步驟您可以使用以下步驟來使用 OpenCV 比較兩幅影像 - 匯入所需的庫。在以下所有 Python 示例中,所需的 Python 庫是 OpenCV。確保您已安裝它。import cv2 使用 cv2.imread() 讀取輸入影像並將其轉換為灰度影像。高度、寬度和… 閱讀更多
4K+ 次瀏覽
影像矩對於計算給定影像中物件的質心、物件的面積等特徵非常重要。使用物件的輪廓來計算物件的影像矩。因此,我們首先檢測物件的輪廓,然後應用 cv2.moments(cnt) 函式來計算矩。語法以下是此函式的語法:cv2.moments(cnt) 其中,“cnt”是影像中物件的輪廓點的 numpy 陣列。步驟您可以使用以下步驟來計算影像中的矩 - 匯入… 閱讀更多