【发布时间】:2016-12-13 17:29:57
【问题描述】:
我正在进行车牌识别。我剪掉了盘子,但它非常模糊。因此我无法拆分数字/字符并识别它。
这是我的图片:
我已经尝试通过 scikit image 功能对其进行去噪。
首先,导入库:
import cv2
from skimage import restoration
from skimage.filters import threshold_otsu, rank
from skimage.morphology import closing, square, disk
然后,我读取图像并将其转换为灰度
image = cv2.imread("plate.jpg")
image = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
我尝试消除噪音:
denoise = restoration.denoise_tv_chambolle(image , weight=0.1)
thresh = threshold_otsu(denoise)
bw = closing(denoise > thresh, square(2))
我得到的是:
如您所见,所有数字混合在一起。因此,我无法将它们分开并逐个识别字符。
我期望的是这样的(我画的):
我正在寻求帮助如何更好地过滤图像?谢谢。
================================================ ======================= 更新:
使用skimage.morphology.erosion后,得到:
【问题讨论】:
-
您可以利用大量模糊,尝试使用大内核的
opening。让我们知道您获得的结果.. -
“尝试
opening with large kernel”是什么意思 -
我的意思是
open形态学运算,即erode后跟dilate。尝试使用大内核并尝试不同的大小。 -
其实@CLWONG,我不熟悉 scikit,但我可以在 OpenCV 中提供帮助。另一种方法是您应该阅读如何修改 api 中的结构元素。谷歌是您的朋友。形态学是基础知识,从长远来看会对您有所帮助,因此我建议您学习它们。
-
在我看来,您不会通过任何图像处理从此类数据中获得合理的准确性。这是一个练习还是一个真正的应用程序?如果这是真的,我现在会投资于优化图像质量而不是代码。
标签: python image opencv image-processing scikit-image