Python与机器学习

用Canny实现商品图背景分析

2018-03-01  本文已影响284人  Jeru_d39e

我随便挑了25张商品图片下载到一个文件夹中,这些图片包括一些衣服鞋子和箱包,可以看到这些商品图的背景大概有三种类型: 纯白底图,其它纯色底图(含少量渐变或阴影,一般是比较专业的室内图),花纹底图(可能是户外拍摄,或者背景比较杂乱,调性比较差),希望能把这三种背景区分出来。

为了方便观察,首先写段代码批量加载图片拼装到一起展示出来。

原图相册

判断白底图比较简单,四个角圈四个矩形看看是否白色,判断白色要有一点容忍度,有的白图不是标准255, 略有偏差。根据观察把scale设成20比较合适,即四个角上的矩形的宽高为原图宽高除以20

Code

Line 45 - 48 是为了画出矩形观察来调参,确定后可以删掉。输出结果看到白色背景图已经能够准确识别的。

下面要对第二种类型的背景图做出判断,想了多种方案最后决定用canny edge来实现。加一段检测边缘的函数,调整threshold参数到合适数值。

Code

这是把threshold上下限设成0和100的效果,我比较满意了。

再写两个函数,将左右两侧圈两条边框检测边框内的灰度均值是否为0

Code

改写一下背景图类型的判断逻辑

Code

试多几组,感觉要把边缘检测的条件设严格点,threshold改为0,50,接近完美!

上一篇下一篇

猜你喜欢

热点阅读