Polydp()用于多个图像

时间:2019-06-11 05:21:27

标签: python image opencv opencv-contour

我想使用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:参数'src'的预期cv :: UMat

有什么建议吗?

0 个答案:

没有答案