gpt4 book ai didi

python - cv2.rectangle() 调用重载方法,尽管我给出了其他参数

转载 作者:行者123 更新时间:2023-12-01 06:32:00 25 4
gpt4 key购买 nike

cv2.rectangle有两种调用方式:

  • img = cv.rectangle( img, pt1, pt2, 颜色[, 厚度[, lineType[, shift]]] )
  • img = cv.rectangle( img, rec, 颜色[, 厚度[, lineType[, shift]]]

来源:https://docs.opencv.org/4.1.2/d6/d6e/group__imgproc__draw.html#ga07d2f74cadcf8e305e810ce8eed13bc9

我将矩形称为如下:

cv2.rectangle(img=cv2_im, pt1=a, pt2=b, color=(0, 255, 0), thickness=3, lineType=cv2.LINE_AA)

错误消息:

cv2.rectangle(img=cv2_im, pt1=a, pt2=b, color=(0, 255, 0), thickness=3, lineType=cv2.LINE_AA) TypeError: rectangle() missing required argument 'rec' (pos 2)

我不明白为什么应用程序尝试调用该方法的重载版本。 U 显式定义版本 1 调用。我尝试用 (x,y) 等更改变量 a ,但它不起作用。正确的方法调用仅在我第一次调用 retangle() 时才有效,之后它希望我使用它的重载版本。

<小时/>
  • Python 3.7.5 64 位
  • 枕头7.0.0
  • numpy 1.18.1
  • opencv-contrib-python 4.1.2.30

    imgname='fly_1.jpg'   
    im = Image.open(imgname)
    cv2_im = np.array(im)

    #x,y,w,h aus Image Labeler
    box= [505.54, 398.334, 1334.43, 2513.223]
    x,y,w,h = box
    a = (x, y)
    b = (x+w, y+h)

    #First rectanglecall
    cv2.rectangle(img=cv2_im, pt1=a, pt2=b, color=(0, 255, 0), thickness=3, lineType=cv2.LINE_AA)
    #calls two cv2 methods which shouldn't influence rectangle
    rects = getRegionProposals(im,'f',normalized=True)


    for i,rect in enumerate(rects):

    x, x_max, y, y_max = rect
    a = (x*width,y*height)
    b = (x_max*width, y_max*height)

    if (IoU is not False and IoU > 0.5):
    #second and further calls
    cv2.rectangle(img=cv2_im, pt1=a, pt2=b, color=(0, 255, 0), thickness=3, lineType=cv2.LINE_AA)

在第二次调用之间,我使用了 cv2 选择性搜索并设置以下内容: cv2.setUseOptimized(True) cv2.setNumThreads(4)

希望你们能看到我做错了什么。

最佳答案

好吧,昨天在解决这个问题几个小时后,我现在才发现,这很令人难过......

元组中的值是 float 。

> a = (x*width,y*height) b = (x_max*width, y_max*height)

将它们更改为 int 并丢失逗号后的值后,它就可以工作了。

a = (int(x*width),int(y*height))

关于python - cv2.rectangle() 调用重载方法,尽管我给出了其他参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59861233/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com