0

对此我感到非常抱歉,但我几乎不知道出了什么问题,所以我将把它全部发布,它不是很长,但我正在使用一些我以前从未使用过的功能,所以我不知道关于出了什么问题,这似乎是 numpy hstack 的问题,但我真的不知道。我知道这很多,但是有人可以查看我的代码吗?

import numpy as np
import argparse
import cv2
import sys



image = cv2.imread("tetris.png")
virtual_board = cv2.imread("tetris.png")

boundaries = (104, 120, 164)
boundaries1 = (106, 122, 166)

for (boundaries) in boundaries:
    lower = np.array(boundaries, dtype = "uint8")
    upper = np.array(boundaries1, dtype = "uint8")

    board_mask = cv2.inRange(image, lower, upper)
    output = cv2.bitwise_and(image, image, mask = board_mask)

    contours, _ = cv2.findContours(board_mask, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE)
    print(contours)
    contours = sorted(contours, key=lambda x: cv2.contourArea(x), reverse=True)
        
    cnt = contours[0]
    (board_x, board_y, board_w, board_h) = cv2.boundingRect(cnt)
    cv2.drawContours(image, [cnt], -1, (0, 255, 0), 3)
    cv2.drawContours(virtual_board, [cnt], -1, (0, 255, 0), 3)

    def ResizeWithAspectRatio(image, width=None, height=None, inter=cv2.INTER_AREA):
        dim = None
        (h, w) = image.shape[:2]

        if width is None and height is None:
            return image
        if width is None:
            r = height / float(h)
            dim = (int(w * r), height)
        else:
            r = width / float(w)
            dim = (width, int(h * r))

        return cv2.resize(image, dim, interpolation=inter)

    resize = ResizeWithAspectRatio(image, width=300)
    cv2.imshow("virtual_board", np.hstack([resize, output]))
    cv2.waitKey(0)

我得到的错误是:

Traceback (most recent call last):
  File "C:\Users\hampus.ramsten\Desktop\Detection.py", line 46, in <module>
    cv2.imshow("virtual_board", np.hstack([resize, output]))
  File "<__array_function__ internals>", line 5, in hstack
  File "C:\Users\hampus.ramsten\AppData\Local\Programs\Python\Python38-32\lib\site-packages\numpy\core\shape_base.py", line 346, in hstack
    return _nx.concatenate(arrs, 1)
  File "<__array_function__ internals>", line 5, in concatenate
ValueError: all the input array dimensions for the concatenation axis must match exactly, but along dimension 0, the array at index 0 has size 168 and the array at index 1 has size 1080
4

0 回答 0