Я хочу определять круги, используя polydp () для нескольких изображений в каталоге.Я заявил, что если в контуре более 10 ребер, это круг, он хорошо работал с отдельными изображениями.но у меня возникла проблема с обработкой нескольких изображений с использованием os.path, sys.
path = ''
dirs = os.listdir(path)
from PIL import Image
import os.path, sys
def poly():
for item in dirs:
fullpath = os.path.join(path,item) #corrected
if os.path.isfile(fullpath):
img_color = Image.open(fullpath)
img_gray = cv.cvtColor(img_color, cv.COLOR_BGR2HSV)
img_gray = cv.cvtColor(img_color, cv.COLOR_BGR2GRAY)
ret, img_binary = cv.threshold(img_gray, 127, 255, cv.THRESH_BINARY_INV | cv.THRESH_OTSU)
contours, hierarchy = cv.findContours(img_binary, cv.RETR_EXTERNAL, cv.CHAIN_APPROX_SIMPLE)
for cnt in contours:
size = len(cnt)
print(size)
epsilon = 0.01 * cv.arcLength(cnt, True)
approx = cv.approxPolyDP(cnt, epsilon, True)
size = len(approx)
#print(size)
cv.line(img_color, tuple(approx[0][0]), tuple(approx[size - 1][0]), (0, 255, 0), 3)
for k in range(size - 1):
cv.line(img_color, tuple(approx[k][0]), tuple(approx[k + 1][0]), (0, 255, 0), 3)
if size > 10:
print("circle")
poly()
сообщение об ошибке
строка 22, в кадре img_gray = cv.cvtColor (cv.UMat, cv.COLOR_BGR2HSV) TypeError: Ожидается cv :: UMat для аргумента 'src'
какие-либо советы?