亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

怎么使用python?opencv實現目標外接圖形

發布時間:2022-08-01 14:15:58 來源:億速云 閱讀:174 作者:iii 欄目:開發技術

本文小編為大家詳細介紹“怎么使用python opencv實現目標外接圖形”,內容詳細,步驟清晰,細節處理妥當,希望這篇“怎么使用python opencv實現目標外接圖形”文章能幫助大家解決疑惑,下面跟著小編的思路慢慢深入,一起來學習新知識吧。

簡介

無論使用哪種幾何外接方法,都需要先進行輪廓檢測。

當我們得到輪廓對象后,可以使用boundingRect()得到包裹此輪廓的最小正矩形,minAreaRect()得到包裹輪廓的最小矩形(允許矩陣傾斜),minEnclosingCircle()得到包裹此輪廓的最小圓形。

最小正矩形和最小外接矩形的區別如下圖所示:

怎么使用python?opencv實現目標外接圖形

實現

這里給出上述5中外接圖形在python opencv上的實現:

①. 邊界矩形

import cv2
import numpy as np

img = cv2.imread('/home/pzs/圖片/test.jpg')
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
thresh, binary = cv2.threshold(gray, 180, 255, cv2.THRESH_BINARY_INV)
binary, contours, hierarchy = cv2.findContours(binary, cv2.RETR_TREE, cv2.CHAIN_APPROX_NONE)
cv2.imshow('binary', binary)
cv2.waitKey(0)

for cnt in contours:
    x,y,w,h = cv2.boundingRect(cnt)
    cv2.rectangle(img, (x, y), (x+w, y+h), (0, 255, 0), 1)

cv2.imshow('image', img)
cv2.waitKey(0)

怎么使用python?opencv實現目標外接圖形

②. 最小外接矩形

import cv2
import numpy as np

img = cv2.imread('/home/pzs/圖片/test.jpg')
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
thresh, binary = cv2.threshold(gray, 180, 255, cv2.THRESH_BINARY_INV)
binary, contours, hierarchy = cv2.findContours(binary, cv2.RETR_TREE, cv2.CHAIN_APPROX_NONE)
cv2.imshow('binary', binary)
cv2.waitKey(0)

for cnt in contours:
    rect = cv2.minAreaRect(cnt)
    box = cv2.boxPoints(rect)
    box = np.int0(box)
    cv2.drawContours(img, [box], 0, (0, 0, 255), 2)


cv2.imshow('image', img)
cv2.waitKey(0)

怎么使用python?opencv實現目標外接圖形

③. 最小外接圓

import cv2
import numpy as np

img = cv2.imread('/home/pzs/圖片/test.jpg')
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
thresh, binary = cv2.threshold(gray, 180, 255, cv2.THRESH_BINARY_INV)
binary, contours, hierarchy = cv2.findContours(binary, cv2.RETR_TREE, cv2.CHAIN_APPROX_NONE)
cv2.imshow('binary', binary)
cv2.waitKey(0)

for cnt in contours:
    (x, y), radius = cv2.minEnclosingCircle(cnt)
    center = (int(x), int(y))
    radius = int(radius)
    cv2.circle(img, center, radius, (255, 0, 0), 2)

cv2.imshow('image', img)
cv2.waitKey(0)

讀到這里,這篇“怎么使用python opencv實現目標外接圖形”文章已經介紹完畢,想要掌握這篇文章的知識點還需要大家自己動手實踐使用過才能領會,如果想了解更多相關內容的文章,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

田东县| 偏关县| 长海县| 桓台县| 兴化市| 吴旗县| 栖霞市| 克拉玛依市| 新田县| 房产| 肇州县| 定结县| 磴口县| 汤阴县| 阿瓦提县| 绥德县| 北辰区| 多伦县| 桦南县| 九江县| 嘉祥县| 兰西县| 日照市| 昌邑市| 墨脱县| 临湘市| 北海市| 瑞金市| 平谷区| 姚安县| 亳州市| 沁水县| 黎平县| 明溪县| 六盘水市| 景德镇市| 长治市| 渝北区| 巍山| 闻喜县| 平邑县|