用Canny实现商品图背景分析
2018-03-01 本文已影响284人
Jeru_d39e
我随便挑了25张商品图片下载到一个文件夹中,这些图片包括一些衣服鞋子和箱包,可以看到这些商品图的背景大概有三种类型: 纯白底图,其它纯色底图(含少量渐变或阴影,一般是比较专业的室内图),花纹底图(可能是户外拍摄,或者背景比较杂乱,调性比较差),希望能把这三种背景区分出来。
为了方便观察,首先写段代码批量加载图片拼装到一起展示出来。
原图相册判断白底图比较简单,四个角圈四个矩形看看是否白色,判断白色要有一点容忍度,有的白图不是标准255, 略有偏差。根据观察把scale设成20比较合适,即四个角上的矩形的宽高为原图宽高除以20
CodeLine 45 - 48 是为了画出矩形观察来调参,确定后可以删掉。输出结果看到白色背景图已经能够准确识别的。
下面要对第二种类型的背景图做出判断,想了多种方案最后决定用canny edge来实现。加一段检测边缘的函数,调整threshold参数到合适数值。
Code这是把threshold上下限设成0和100的效果,我比较满意了。
再写两个函数,将左右两侧圈两条边框检测边框内的灰度均值是否为0
Code改写一下背景图类型的判断逻辑
Code试多几组,感觉要把边缘检测的条件设严格点,threshold改为0,50,接近完美!