我目前正致力于计算机视觉项目,并且我的大部分算法都在运行。但是,我目前正在每张图片上手动进行背景减法。这是因为我能找到的最常见的背景减法算法使用了阈值处理,我的项目应该处理比我想要提取的对象更亮和更暗的背景。
这是我当前减去背景的方式(使用python和scikit堆栈):
val = filters.threshold_otsu(image)
return image > val
当然,这仅适用于比主体更暗的背景。 我有想法找出背景是否明亮,然后根据改变不平等的标志,但找不到办法。
是否有背景减法算法能够处理明亮和黑暗的背景,还是有其他方法可以解决这个问题?
答案 0 :(得分:2)
通常没有固定的方法来解决您的问题。前景和背景可以根据情况进行不同的定义。
话虽这么说,使用一些启发式方法使算法适用于您的数据集并非不可能。如果您可以分享一些图像以便我们更好地理解您对前景和背景的定义,将会很有帮助。
以下是一些可能有帮助的启发式方法:
答案 1 :(得分:-1)
有几种自动阈值技术可供选择。其中一个是大津。
http://www.labbookpages.co.uk/software/imgProc/otsuThreshold.html
它在opencv(https://docs.opencv.org/trunk/d7/d4d/tutorial_py_thresholding.html)
中实现import cv2
img = cv2.imread('noisy2.png',0)
ret2,th2 = cv2.threshold(img,0,255,cv2.THRESH_BINARY+cv2.THRESH_OTSU)