gpt4 book ai didi

python - Opencv 检测表格上的所有通用对象形状(鸟瞰图)

转载 作者:行者123 更新时间:2023-12-02 16:17:08 24 4
gpt4 key购买 nike

我想检测平 table 上的各种物体形状。 table 可以有灰色、白色或黑色的表面颜色。

对象可以是任何形状并且可以具有不同的颜色。

解决这个问题的有效方法是什么?

我试过:

1.)转换为灰度,双边滤波器,canny边缘然后使用findContours,也尝试了自适应阈值。

2.) OpenCV SimpleBlobDetector

原图

Original

轮廓

Contours

Blob 检测器

Blob

最佳答案

如果在任何情况下颜色是一个问题,您可以使用 adaptive threshold 找到 table 上对象的边缘。 .

代码:

img = cv2.imread(r'C:\Users\Jackson\Desktop\table.png', 1)

gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
gray = cv2.medianBlur(gray, 5)

ret,th1 = cv2.threshold(gray,127,255,cv2.THRESH_BINARY)

adaptive_threshold = cv2.adaptiveThreshold(gray,255,cv2.ADAPTIVE_THRESH_GAUSSIAN_C,\
cv2.THRESH_BINARY,11,2)

img2 = img.copy()

_, contours, _ = cv2.findContours(cv2.threshold(th3, 0, 255, cv2.THRESH_BINARY_INV)[1], cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)

cv2.drawContours(img2, contours, -1, (0, 255, 0), 2)

结果:
cv2.imshow('adaptive_threshold', adaptive_threshold)

enter image description here
cv2.imshow('img2', img2)

enter image description here

关于python - Opencv 检测表格上的所有通用对象形状(鸟瞰图),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51185292/

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