【发布时间】:2021-07-29 17:04:12
【问题描述】:
我正在尝试检测图像中的对象并在其周围制作一个边界框
以下是对您的帮助的特征:
- 它永远是黑色的
- 它将在右侧或左侧
- 必须是自动的
这是我迄今为止所取得的成就:
这是它的代码:
import cv2
import numpy as np
def nothing(x):
pass
cv2.namedWindow("Tracking")
cv2.createTrackbar("LH", "Tracking", 0, 255, nothing)
cv2.createTrackbar("LS", "Tracking", 0, 255, nothing)
cv2.createTrackbar("LV", "Tracking", 0, 255, nothing)
cv2.createTrackbar("UH", "Tracking", 255, 255, nothing)
cv2.createTrackbar("US", "Tracking", 255, 255, nothing)
cv2.createTrackbar("UV", "Tracking", 255, 255, nothing)
while True:
frame = cv2.imread('resultImages/imgCropped.png')
img = frame.copy()
hsv = cv2.cvtColor(frame, cv2.COLOR_BGR2HSV)
l_h = cv2.getTrackbarPos("LH", "Tracking")
l_s = cv2.getTrackbarPos("LS", "Tracking")
l_v = cv2.getTrackbarPos("LV", "Tracking")
u_h = cv2.getTrackbarPos("UH", "Tracking")
u_s = cv2.getTrackbarPos("US", "Tracking")
u_v = cv2.getTrackbarPos("UV", "Tracking")
l_b = np.array([l_h, l_s, l_v])
u_b = np.array([u_h, u_s, u_v])
mask = cv2.inRange(hsv, l_b, u_b)
res = cv2.bitwise_and(frame, frame, mask=mask)
cv2.imshow("frame", frame)
cv2.imshow("mask", mask)
cv2.imshow("res", res)
key = cv2.waitKey(1)
if key == 27:
break
cv2.destroyAllWindows()
我怎样才能检测到这个对象?
【问题讨论】:
-
我们需要更多信息来回答...您需要它是自动的还是只在这个特定的图像中?它总是位于图像的左侧吗?总是这样黑吗?
-
@Panda50 我将编辑答案,但现在这里有详细信息:i)它必须是自动的 ii)它会在右边或左边 iii)它永远是黑色的
标签: python opencv image-processing object-detection opencv-python