gpt4 book ai didi

python-3.x - 检测图像中的图案并检索其位置

转载 作者:行者123 更新时间:2023-12-05 01:19:59 26 4
gpt4 key购买 nike

我有一张 1920x1080 的图片。我需要获取图像中每个矩形的位置。最好是 2 个点(左上角,右下角)。

我是 Python 的新手。我想也许可以使用 opencv 模块,但如果你能给我一些指示,那将非常有帮助。

谢谢。

Sample Image

最佳答案

我建议像这样使用 OpenCV findContours():

#!/usr/bin/env python3

import numpy as np
import cv2

# Load image
im = cv2.imread('pattern.png')

# Convert to grayscale
imgray = cv2.cvtColor(im,cv2.COLOR_BGR2GRAY)

# Find contours, draw on image and save
im2, contours, hierarchy = cv2.findContours(imgray,cv2.RETR_EXTERNAL,cv2.CHAIN_APPROX_SIMPLE)
cv2.drawContours(im, contours, -1, (0,0,255), 3)

# Show user what we found
i=0
for cnt in contours:
x,y,w,h = cv2.boundingRect(cnt)
print('Contour {}: x={}, y={}, w={}, h={}'.format(i,x,y,w,h))
i = i+1

# Save the result
cv2.imwrite('result.png',im)

enter image description here

示例输出

Contour 0: x=1743, y=903, w=77, h=77
Contour 1: x=1552, y=903, w=77, h=77
Contour 2: x=291, y=903, w=77, h=77
Contour 3: x=100, y=903, w=77, h=77
Contour 4: x=1648, y=808, w=77, h=77
Contour 5: x=196, y=808, w=77, h=77
Contour 6: x=1743, y=712, w=77, h=77
Contour 7: x=291, y=712, w=77, h=77
Contour 8: x=100, y=712, w=77, h=77
Contour 9: x=1551, y=711, w=78, h=78
Contour 10: x=1017, y=597, w=77, h=77
Contour 11: x=826, y=597, w=77, h=77
Contour 12: x=922, y=502, w=77, h=77
Contour 13: x=1017, y=406, w=77, h=77
Contour 14: x=826, y=406, w=77, h=77
Contour 15: x=1743, y=291, w=77, h=77
Contour 16: x=1552, y=291, w=77, h=77
Contour 17: x=291, y=291, w=77, h=77
Contour 18: x=100, y=291, w=77, h=77
Contour 19: x=1648, y=196, w=77, h=77
Contour 20: x=196, y=196, w=77, h=77
Contour 21: x=1743, y=100, w=77, h=77
Contour 22: x=1552, y=100, w=77, h=77
Contour 23: x=291, y=100, w=77, h=77
Contour 24: x=100, y=100, w=77, h=77

请注意,这并不是专门寻找您的图案,它只是在黑色背景上寻找白色物体。这有优点也有缺点。优点是它适用于任何白色形状(圆形、星形、八边形)而无需更改代码。它也可能比模板匹配更快。缺点是,如果您的图像中有其他白色物体,它会给您误报 - 尽管您可以检查形状、圆度、颜色或其他任何东西来确认/消除歧义。

关于python-3.x - 检测图像中的图案并检索其位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54544203/

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