首页 > opencv边缘检测实现指定边缘区域的模糊处理?

opencv边缘检测实现指定边缘区域的模糊处理?

我的需求时在身份证中找到头像,然后把这个头像模糊化处理。
我是opencv的纯小白(从来没用过),昨天在群里问了才有人告诉我去搜opencv、边缘检测、二值化,所以标题不是很准确,总之是实现上述需求。
请各位大大提供一些学习思路,感谢!


我觉得你还是先找找不用模糊头像的方案比较好。

考虑到你遇到的问题是头像对识别结果影响过大,不如直接对图像进行二值化再上传到百度OCR接口。二值化方案很多,可以尝试先将三个通道加权灰度化,然后取一个合适的阈值进行二值化;也可以直接取一个颜色通道进行二值化。应该选取对比度最高的方案,以保证文字可以准确显示出来。

非要模糊头像的话,也是先进行灰度化,然后对图片进行边缘检测,连接边缘构成边界,由此可以确定一系列边界,找出其中最大的即为身份证边界,次大的应该是头像边界。通过头像边界确定一个包含头像的矩形框,在此位置进行模糊处理即可。

考虑到灰度化后大块深黑色部分一般只有衣领和头发,可以采用分水岭算法将图像的深黑色部分提取出来,找到其中最大的黑色区域一般为人的头发。如果发现两块极大的黑色区域,则取上方黑色区域作为人的头发区域。进而可以确定头像大致位置进行模糊处理。

并没有用过OpenCV不知道里面有没有封装好的边界提取和分割算法,不过自己实现起来应该也不算太难。然而我觉得还是再找找其他方案比较好。

【热门文章】
【热门文章】