【发布时间】:2018-02-12 22:52:53
【问题描述】:
我正在尝试一个项目,我必须在其中提取一个正方形,特别是一张身份证。
问题发生在刚开始时,当我尝试检测(并在提取后)卡片时。 我正在使用 Canny Edge 和这段代码:
import cv2
import numpy as np
card = cv2.imread('card.png')
card = cv2.resize(card, (800, 800))
gray = cv2.cvtColor(card, cv2.COLOR_BGR2GRAY)
gray = cv2.GaussianBlur(gray, (5, 5), 0)
cv2.imshow("Gray", gray)
cv2.waitKey(0)
# detect edges in the image
edged = cv2.Canny(gray, 10, 250)
cv2.imshow("Edged", edged)
cv2.waitKey(0)
# construct and apply a closing kernel to 'close' gaps between 'white'
# pixels
kernel = cv2.getStructuringElement(cv2.MORPH_RECT, (10, 10))
closed = cv2.morphologyEx(edged, cv2.MORPH_CLOSE, kernel)
cv2.imshow("Closed", closed)
cv2.waitKey(0)
对于这张图片(为了隐私而手动应用模糊),这是 Canny edge 的结果..
这是普通卡片的结果(应用模糊后)
我的问题是 2:如何摆脱背景条纹?如何最终缩小最后一张图像中的间隙(由于模糊,它在第一个处理的图像中关闭,但以最后一个作为用例)?
奖金
我将其添加为替代源(以及我的结果 - 封闭内核)
谢谢
【问题讨论】:
标签: python opencv canny-operator