1K+ 閱讀量
物體的實體計算為輪廓面積與其凸包面積之比。因此,要計算實體,我們首先必須找到輪廓面積和凸包面積。可以使用 cv2.contourArea() 函式找到物體的輪廓面積。等效直徑是指面積與輪廓面積相同的圓的直徑。實體和等效直徑可以如下計算: 語法 area = cv2.contourArea(cnt) hull = cv2.convexHull(cnt) hull_area = cv2.contourArea(hull) solidity = float(area)/hull_area equi_diameter = np.sqrt(4*area/np.pi) 其中,cnt 是... 閱讀更多
4K+ 閱讀量
物體的縱橫比計算為物體邊界矩形的寬度和高度之比。因此,要計算縱橫比,我們首先必須找到物體的邊界矩形。可以使用 cv2.boundingRect() 函式找到物體的邊界矩形。它接受物體的輪廓點並返回邊界矩形的左上角座標 (x, y) 和 (寬度, 高度)。我們使用寬度和高度來計算縱橫比。語法 x, y, w, h = cv2.boundingRect(cnt) aspect_ratio = float(w)/h 這裡,“cnt” 是一個 NumPy 陣列... 閱讀更多
物體的範圍計算為輪廓面積與其邊界矩形面積之比。因此,要計算範圍,我們首先必須找到輪廓面積和邊界矩形面積。可以使用 cv2.contourArea() 函式找到物體的輪廓面積。語法 範圍可以按如下方式計算: area = cv2.contourArea(cnt) x, y, w, h = cv2.boundingRect(cnt) rect_area = w*h extent = float(area)/rect_area 這裡,“cnt” 是影像中物體輪廓點的 NumPy 陣列。步驟您可以使用以下步驟來計算... 閱讀更多
雙邊濾波操作在平滑影像和去除噪聲方面非常有效。雙邊濾波的主要優點是它可以保留邊緣,這與平均濾波和中值濾波不同。與其他濾波器相比,雙邊濾波操作速度較慢。我們可以使用 cv2.bilateralFilter() 方法對影像執行雙邊濾波。語法以下是此方法的語法。 cv2.bilateralFilter(img, d, sigmaColor, sigmaSpace) 此方法接受以下引數: img - 要應用雙邊濾波操作的輸入影像。d - 表示整數型別的變數... 閱讀更多
9K+ 閱讀量
我們可以使用函式 cv2.fitEllipse() 將橢圓擬合到物體。橢圓內接於旋轉矩形。旋轉矩形是包含物體的最小面積的邊界矩形。語法此函式使用的語法為: ellipse = cv2.fitEllipse(cnt) 其中,“cnt” 是輪廓點。它表示為輪廓點的陣列。輸出 - 它返回一個元組的元組,格式為 ((x, y), (majorAxis, minorAxis), angle)。(x, y) 是中心的座標,(majorAxis, minorAxis) 是... 閱讀更多
在 OpenCV 中,彩色 (RGB) 影像表示為 3 維 NumPy 陣列。影像的畫素值使用範圍從 0 到 255 的 8 位無符號整數 (uint8) 儲存。兩張影像的按位或操作是在對應影像的這些畫素值的二進位制表示上執行的。語法以下是對兩張影像執行按位或操作的語法: cv2.bitwise_or(img1, img2, mask=None) img1 和 img2 是兩張輸入影像,mask 是掩碼操作。步驟要計算兩張影像之間的按位或,您可以使用以下步驟... 閱讀更多
要向影像新增水印,我們將使用 OpenCV 中的 cv2.addWeighted() 函式。您可以使用以下步驟在輸入影像上建立水印: 匯入所需的庫。在以下所有 Python 示例中,所需的 Python 庫是 OpenCV。確保您已安裝它。 import cv2 讀取我們將要應用水印的輸入影像並讀取水印影像。 img = cv2.imread("panda.jpg") wm = cv2.imread("watermark.jpg") 獲取輸入影像的高度和寬度,以及水印影像的高度和寬度。 h_img, w_img... 閱讀更多
3K+ 閱讀量
物體的最小外接圓(外接圓)是一個完全覆蓋物體且面積最小的圓。我們可以使用函式 cv2.minEnclosingCircle() 找到物體的最小外接圓。語法此函式的語法為: (x, y), radius = cv2.minEnclosingCircle(cnt) 其中,“cnt” 是輪廓點。它表示為輪廓點的陣列。輸出 - 它返回中心的座標 (x, y) 和最小外接圓的半徑。(x, y) 和半徑為 float 資料型別。因此,要在影像上繪製圓圈,我們將其轉換為整數。要繪製... 閱讀更多
凸包看起來類似於輪廓近似,但它並不完全是輪廓近似。凸包是物體周圍的凸曲線。凸曲線總是向外凸出,或者至少是平坦的。凸包查詢凸性缺陷並對其進行校正。語法要查詢凸包,我們使用以下函式: hull = cv2.convexHull(cnt, hull, clockwise, returnPoints) 引數 cnt 是輪廓點。它表示為輪廓點的陣列。hull 是輸出,通常我們避免它。clockwise - 方向標誌。如果為 True,則輸出凸... 閱讀更多
Hu 不變數矩可以使用 cv2.HuMoments() 函式找到。它返回七個對平移、旋轉和縮放不變的矩。第七個矩是斜率不變的。要計算 Hu 不變數矩,我們需要首先找到影像。影像矩是使用物體的輪廓為物體計算的。因此,首先,我們檢測物體的輪廓,然後應用 cv2.moments() 函式來計算矩。語法此函式使用以下語法: M = cv2.moments(cnt) cv2.HuMoments(M) 這裡,cnt - 它是在影像中物體輪廓點的 NumPy 陣列。M... 閱讀更多