【发布时间】:2022-01-16 09:51:22
【问题描述】:
如何使用 OpenCV 检测不完整的圆形卡片 ID
示例
我试过findContours但无法得到卡片的边缘点,我的目标是裁剪卡片。
使用的代码
import cv2
image = cv2.imread('./data/15430864595779441.jpg')
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
binary = cv2.bitwise_not(gray)
cv2.imshow("Binary" , binary)
(contours,_) = cv2.findContours(binary, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_NONE)
for contour in contours:
(x,y,w,h) = cv2.boundingRect(contour)
cv2.rectangle(image, (x,y), (x+w,y+h), (0,255,0), 2)
cv2.imshow("Results" , image)
cv2.waitKey(0)
【问题讨论】:
-
请从图片中删除个人数据!
-
完成,谢谢 (Y)
-
对图片中卡片的大小和位置有任何假设吗?例如。卡片至少覆盖了 50% 的图像区域,并且图像中心位于卡片的内部区域?
-
如何检测身份证是一个常见问题。我确信以前的问题有有用的答案。 - 我不明白阈值如何在这里起作用。卡片与背景没有对比。 -- 你可以尝试特征匹配和单应性,
samples/python/find_obj.pyin OpenCV -- 霍夫线提取可能适用...
标签: python opencv image-processing