图像处理

低对比度白纸提取

返回案例列表

资源下载

打开解决方案文件之前,请先阅读 如何查看案例

问题描述

如何从复杂背景中提取低对比度的白纸轮廓?图像可能是手机拍摄的屏幕,存在液晶颗粒和摩尔纹干扰。

原始问题图片

低对比度白纸提取

第一步:保边降噪

分析题主给的这个图,首先因为很可能是手机直接拍摄的屏幕,所以需要先去除液晶颗粒和摩尔纹的影响,与此同时,为了尽量减少边缘对比度的损失,考虑进行保边去噪(edge-preserving denoising),我使用的是kaiming的快速导向滤波算法(又快又好的保边降噪首选算法),得到下图

图1
图 1 快速导向滤波去除液晶颗粒和减弱摩尔纹

第二步:提取蓝色通道

接着,简单地提取蓝色通道,进一步减弱纸张上以及附近的颜色变化干扰,得到一个灰度图

图2
图表 2 提取蓝色通道得到灰度图

第三步:形态学闭操作

再设法去除相对于纸张来说,比较细小的目标,这里就可以使用形态学闭操作处理(核宽71,核高25,kernel形状为矩形)

图3
图 3 形态学闭操作

第四步:轮廓定位

然后使用我们比较成熟的轮廓定位算法(和普通的斑点分析方法比,增加了很多关于轮廓长度过滤、相近轮廓拼接等集成功能),调参后得到下图

图4
图 4 轮廓定位结果

最终结果

重新组织一下展示方式,看一下轮廓放回到原图上的效果,并基于轮廓做一个抠图之后如下

图5
图 5轮廓和抠图展示
图6
图 6 抠图后的结果

如果当做一次性的图像处理过程来做的话,以上处理方式也行。如果要对批量的类似图片进行处理,期望结果都稳定的话,那上面的方法还不够稳定,对参数的变化过于敏感。

下图是加载灵闪Task之后的界面显示结果

图7
图 7 灵闪运行界面截图

知乎链接

请问opencv 低对比度背景该如何提取? - 知乎