对于项目的概述,我正在为真实的项目符号模拟器创建一个项目。一个人正在用真枪射击屏幕(用于投影仪的白色塑料片),屏幕后面有一个摄像头 从屏幕图像中检测出每个新的弹孔。 为此,我尝试了很多方法,除非我能准确检测出子弹,否则我将不胜感激。
这是我尝试过的主要代码。
以下是相机在屏幕后面捕获的原始图像
这是另一个可操作的图像,用于指定我期望的结果。
我想检测这些原始的弹孔并在其上画一个圆
这就是我尝试使用开放cv2.threshold
方法
import cv2
import numpy as np
## getting bullet shots images
image = cv2.imread("sample_plate.png")
## applying threshold
retval, threshold_image = cv2.threshold(image, 10, 255, cv2.THRESH_BINARY)
cv2.imwrite("thres_binary_result.png",threshold_image)
retval, threshold_image = cv2.threshold(image, 10, 255, cv2.THRESH_TRUNC)
cv2.imwrite("thres_trunc_result.png",threshold_image)
retval, threshold_image = cv2.threshold(image, 10, 255, cv2.THRESH_TOZERO)
cv2.imwrite("thres_tozero_result.png",threshold_image)
这是我得到的结果图像。
cv2.THRESH_BINARY:
cv2.THRESH_TRUNC:
cv2.THRESH_TOZERO:
请提出任何新方法,并尝试使用我的图片, 我已经尝试了许多答案,但他们无济于事,因为在屏幕上(放映机的白色塑料板)上有视频正在播放,我必须检测出真正的子弹孔,因此没有机会从以前检测出之后,因为无论是否有新镜头,每一帧都会有所不同。 预先谢谢你。