使用OpenCV自动去除背景色


使用OpenCV自动去除背景色

仅用于站内搜索,没有排版格式,具体信息请跳转上方微信公众号内链接

点击上方“小白学视觉”,选择加\“星标\“或“置顶”
重磅干货,第一时间送达
几天前,我遇到了一个项目,要求将草图放到某个文件夹中时删除草图的白色背景。这都是在硬件扫描仪中发生的。
下面是一个草图示例:
第一步是安装此项目的依赖关系,具体需要内容我们将在下面列出。此外,我们还将使用Python3. 7。
opencv_python==4. 1.0. 25pipinstallopencv-pythonnumpy==1. 16.4pipinstallnumpy
之后,我们将导入项目所需的所有模块

然后,我们创建三个不同的变量:要处理的文件夹的名称,图像在处理后存储的文件夹的名称,以及在监视文件夹时的轮询时间(即,它检查文件夹中更改的频率,在我们这里设置的是一秒钟)
watch_folder=‘toprocess’processed_folder=‘processed’poll_time=1
文件夹“toprocess”和“processed”放置在和我们的python脚本的同一目录中。
然后,我们将介绍我们程序主要功能的代码,它将监视我们的“toprocess”目录,如果没有发生任何更改,程序将处理存入在该文件夹的所有图像。

这段代码将无限循环运行,直到脚本被杀死为止。启动后,它将文件存储在名为“before”的词典目录中。接下来,下面将分解介绍无限循环中的步骤:
睡眠指定的poll_time(1秒)。
将文件信息存储在名为after的字典目录中。
通过比较之后的IN和之前的NOT来存储已添加的内容
检查最后添加的元素(added[ 0])(如果存在),然后调用一个函数,我们将在文件上稍作介绍的processImage进行讨论。
如果已删除,请通过打印一些信息来让用户知道。
最后,将目录中的最新文件进行更新。
接下来介绍processImage函数,这是程序的核心。这就是OpenCV后台删除魔术发生的地方。下面的注释解释了该代码(需要基本的OpenCV知识):

接下来是一个非常简单的功能,可以正确地完成工作。再次强调,使用阈值可以提供更好的结果。我们需要讨论的最后一件事是minihelper函数,该函数为文件名生成随机字符串。

这是一个简单的功能。它使用“string”库获取字母,然后根据我们传入的长度加入随机选择的字符。传入5的长度将生成5个字符的字符串。
整个程序的处理结果如下所示:
交流群
欢迎加入公众号读者群一起和同行交流,目前有SLAM、三维视觉、传感器、自动驾驶、计算摄影、检测、分割、识别、医学影像、GAN、算法竞赛等微信群(以后会逐渐细分),请扫描下面微信号加群,备注:”昵称+学校/公司+研究方向“,例如:”张三+上海交大+视觉SLAM“。请按照格式备注,否则不予通过。添加成功后会根据研究方向邀请进入相关微信群。请勿在群内发送广告,否则会请出群,谢谢理解~


文章作者: ZejunCao
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 ZejunCao !
  目录