python - 图片的一部分变成numpy数组

标签 python numpy opencv cv2

我正在进行有关实时数独识别的项目,但遇到了问题。我想拍摄图像的一部分,比方说已经被识别的数独的一部分(如下面的部分),然后将其转换为一个numpy数组,以备将来使用。

数独的部分:

如果您正在徘徊,那么这些矩形将被我的程序的这一部分收集的4个点所绘制:

contours, hierarchy = findContours( thresh.copy(), RETR_TREE, CHAIN_APPROX_SIMPLE)

for cnt in contours:
    rect = minAreaRect(cnt)
    if rect[1][0] > 80:
        box = boxPoints(rect)
        box = np.int0(box)
        if thresh[box[0][1], box[0][0]] != 0:
            for coord in box:
                coords.append(coord)
            approx = approxPolyDP(box,0.01*arcLength(box,True),True)
            drawContours(img,[approx],0,(255,0,0),2)

我在互联网上找不到任何解决方案,所以我问:有什么办法可以做到?

最佳答案

您可以使用轮廓边界点对图像进行 slice ,并将其存储在新数组中:

# (x1, y1) is the top-left bounding point
# (x2, y2) is the bottom-right bounding point
sudoku_box = img[y1:y2, x1:x2]

关于python - 图片的一部分变成numpy数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55776603/

相关文章:

python - 在不创建 for 循环或函数的情况下对每一列进行线性回归

python - 你如何创建一个空的元组列表?

Python OpenCV 模板匹配错误

Python 比较两个 3 维 numpy 数组

python - OpenCV - 如何对 RGB 图像使用 floodFill?

c++ - OpenCV : homomorphic filter

python - 尝试从目录外部导入时出现 ModuleNotFoundError

python - 即使我可以使用凭据进行 SSH,Fabric 也会要求输入密码

python - 通过 Socket 发送 numpy 数组

csv - 在与真实数据相同的图中绘制多项式回归