所以我有视频,起初它的黑色,白色像素很少。 然后白色物体出现并生长,直到它达到稳定。
一旦它稳定,它占据了大约50%的图片。
这里位于底部但可能位于顶部,侧面,角落处。 唯一不变的是,它最终会占据图片的很大一部分。
我怎么能检测出来?
我尝试过hough circle检测,但没有成功。
现在我计算图像中非黑色像素的百分比(超过30%的触发检测),但它的速度很慢(2个用于循环,if用于计数器)。
ps:这是一艘在退出超空间时移动恒星的船只,无用的颜色被移除,星形表面不断变化,因此白色的黑洞会随着时间的推移而改变位置。
我目前的解决方案:
gray = cv2.cvtColor(im, cv2.COLOR_BGR2GRAY)
idxs = np.any(gray != 0, axis=1) # index of rows with at least one non zero value
grayNoZeroLine = gray[idxs, :] # selection of the wanted rows
print idxs
if len(grayNoZeroLine)>200:
print 'star detected'
它速度很快,但是我无法通过这种检测方法知道星星在屏幕的哪个位置,因为我需要调整路线并避免它变得很重要它