код для поиска выпуклой оболочки, не применимой к видео - PullRequest
0 голосов
/ 13 октября 2019

Я написал код на python / opencv, чтобы превратить видео в оттенки серого, размыть его и использовать плавный край. Моим последним шагом было попытаться найти выпуклый корпус. Я могу запустить видео, но код выпуклой оболочки не влияет на видео.

все остальные шаги были успешными, я не опубликовал код импорта библиотеки и просто отпустил и уничтожил коды оконпотому что я не мог отправить вопрос с ними. Однако я использовал их в своем кодировании.

while(cap.isOpened()):
ret, frame = cap.read()


if not ret:
     break

gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
frame = gray

blur = cv2.GaussianBlur(frame,(5,5),cv2.BORDER_DEFAULT)
frame = blur
Canny = cv2.Canny(frame ,120,240)
frame = Canny




#Threshold to binarize image

ret, thresh = cv2.threshold(blur, 50, 255, cv2.THRESH_BINARY)


# Finding contours for the thresholded image

contours, hierarchy = cv2.findContours(thresh, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE)


# create hull array for convex hull points
hull = []

# calculate points for each contour
for i in range(len(contours)):
# creating convex hull object for each contour
 hull.append(cv2.convexHull(contours[i], False))

# create an empty black image
drawing = np.zeros((thresh.shape[0], thresh.shape[1], 3), np.uint8)

# draw contours and hull points
for i in range(len(contours)):
 color_contours = (0, 255, 0) # green - color for contours
color = (255, 0, 0) # blue - color for convex hull
# draw ith contour
cv2.drawContours(drawing, contours, i, color_contours, 1, 8, hierarchy)
# draw ith convex hull object
cv2.drawContours(drawing, hull, i, color, 1, 8)


      # create an empty black image
      drawing = np.zeros((thresh.shape[0], thresh.shape[1], 3), np.uint8)

# draw contours and hull points
for i in range(len(contours)):
 color_contours = (0, 255, 0) # green - color for contours
color = (255, 0, 0) # blue - color for convex hull
# draw ith contour
cv2.drawContours(drawing, contours, i, color_contours, 1, 8, hierarchy)
# draw ith convex hull object
cv2.drawContours(drawing, hull, i, color, 1, 8)  


# Save the video
out.write(frame)

cv2.imshow('frame',frame)
if cv2.waitKey(1) & 0xFF == ord('q'):
     break
...