OpenCV輪廓 邊界框 最小矩形 最小閉圓檢測

2021-08-19 04:28:50 字數 1496 閱讀 8631

import cv2

import numpy as np

# 函式cv2.pyrdown()是降低影象解析度,變為原來一半

# 將轉化為灰度,再進行二值化

ret, thresh = cv2.threshold(cv2.cvtcolor(img.copy(), cv2.color_bgr2gray), 127, 255, cv2.thresh_binary)

for c in contours:

# 邊界框:

# find bounding box coordinates

# boundingrect()將輪廓轉化成(x,y,w,h)的簡單邊框,cv2.rectangle()畫出矩形[綠色(0, 255, 0)]

x, y, w, h = cv2.boundingrect(c)

cv2.rectangle(img, (x, y), (x + w, y + h), (0, 255, 0), 2)

# 最小矩形區域:

# 1 計算出最小矩形區域 2 計算這個的矩形頂點 3 由於計算出來的是浮點數,而畫素是整型,所以進行轉化 4 繪製輪廓[紅色(0, 0, 255)]

# find minimum area

rect = cv2.minarearect(c)

# calculate coordinates of the minimum area rectangle

box = cv2.boxpoints(rect)

# normalize coordinates to integers

box = np.int0(box)

# draw contours

cv2.drawcontours(img, [box], 0, (0, 0, 255), 3)

# 最小閉圓的輪廓:

# calculate center and radius of minimum enclosing circle[藍色(255, 0, 0)]

(x, y), radius = cv2.minenclosingcircle(c)

# cast to integers

center = (int(x), int(y))

radius = int(radius)

# draw the circle

img = cv2.circle(img, center, radius, (255, 0, 0), 2)

# 輪廓檢測:繪製輪廓

cv2.drawcontours(img, contours, -1, (255, 0, 0), 1)

cv2.imshow("contours", img)

cv2.waitkey()

cv2.destroyallwindows()

OpenCV 輪廓及矩形框提取

參考 opencv3 c 輪廓的提取與篩選 define crt secure no warnings include include include using namespace cv using namespace xfeatures2d using namespace std intmain...

opencv提取外部輪廓並在外部加矩形框

這段時間一直在用opencv搞影象處理的問題,發現雖然可呼叫的函式多,但是直接找相應 還是很困難,就行尋找連通域,並在連通域外側加框,對於習慣使用mat矩形操作的我,真心感覺 少之又少,為防止以後自己還會用到,特在此記錄一下。要對下面的影象進行字元的邊緣檢測。程式中具體的步驟為 1 灰度化 二值化 ...

OpenCV輪廓篇 旋轉矩形矯正

之前一直這裡很迷,現在做乙個整理測試,下圖搬運。先看一下rotatedrect屬性定義 class cv exports rotatedrect 其中opencv奇葩的角度定義如下 其實觀點點就是我們定義的長和寬和opencv定義的輪廓長寬是不一樣的,所以需要轉化我認知的長於寬,傾斜角度也進行轉化。...