Я применяю детектор краев Canny в видео, используя OpenCV. Я вижу результат в окне, а затем пишу видео. Несмотря на то, что я вижу правильный результат в окне, результат в выходном файле отличается.
Вот код и то, что я вижу в окне и в выходном файле. Любая идея, что может вызвать это? Я не уверен, что выводит Canny, и нужно ли мне преобразовать его в тип данных, который будет соответствовать остальной части видео.
`
import cv2
import numpy as np
cap = cv2.VideoCapture('New_video.mp4')
if (cap.isOpened() == False):
print("Unable to read camera feed")
frame_width = int(cap.get(3))
frame_height = int(cap.get(4))
fps = int(round(cap.get(5)))
out = cv2.VideoWriter('output.mp4', cv2.VideoWriter_fourcc(*'mp4v'), fps,
(frame_width, frame_height))
while (True):
ret, frame = cap.read()
if ret == False:
break
if between (cap,40000,45000):
gray = cv2.cvtColor(frame,cv2.COLOR_BGR2GRAY)
frame = cv2.blur(gray,(5,5))
frame = cv2.Canny(frame,20,60)
if between (cap,45000,50000):
gray = cv2.cvtColor(frame,cv2.COLOR_BGR2GRAY)
frame = cv2.blur(gray,(5,5))
frame = cv2.Canny(frame,150,250)`
out.write(frame)
cv2.imshow('frame',frame)