我正在尝试在计算机上实现隐写术视频。用于我必须提取每个视频帧并隐藏其中的秘密信息他们。现在我已经成功地提取帧,隐藏其中的消息,并保存它使用opencv2。 但是当我再次从stego视频中提取帧时,帧的像素值完全不同。你知道吗
即使我没有应用隐写术,只是提取帧并保存回新的视频,帧是完全不同的,当我再次提取它们。你知道吗
下面是我使用OpenCv2提取和保存帧的代码
import cv2
def get_frame_count(cap):
frame_count = int(cap.get(cv2.CAP_PROP_FRAME_COUNT)) - 1
return frame_count
def get_fps_rate(cap):
fps = cap.get(cv2.CAP_PROP_FPS)
return fps
video_input_path = "./sample4.mp4"
cap = cv2.VideoCapture(video_input_path)
width = (int)(cap.get(cv2.CAP_PROP_FRAME_WIDTH ))
height = (int)(cap.get(cv2.CAP_PROP_FRAME_HEIGHT))
frame_count = get_frame_count(cap)
fps = get_fps_rate(cap)
fourcc = cv2.VideoWriter_fourcc(*'mp4v')
video = cv2.VideoWriter('newVideo.mp4', fourcc, fps, (width, height))
count = 0
while cap.isOpened():
ret, frame = cap.read()
video.write(frame)
count = count + 1
if (count >= (frame_count)):
cap.release()
break
video.release
cv2.destroyAllWindows()
检查两个视频中第一帧的相等性(sample4.mp4和新视频.mp4)我使用这个代码:
import cv2
def get_frame_count(cap):
frame_count = int(cap.get(cv2.CAP_PROP_FRAME_COUNT)) - 1
return frame_count
video_input_path = "./sample4.mp4"
cap = cv2.VideoCapture(video_input_path)
frame_count = get_frame_count(cap)
width = (int)(cap.get(cv2.CAP_PROP_FRAME_WIDTH ))
height = (int)(cap.get(cv2.CAP_PROP_FRAME_HEIGHT))
ret, frame = cap.read()
print frame
cap.release()
video_input_path = "./newVideo.mp4"
cap = cv2.VideoCapture(video_input_path)
frame_count = get_frame_count(cap)
width = (int)(cap.get(cv2.CAP_PROP_FRAME_WIDTH ))
height = (int)(cap.get(cv2.CAP_PROP_FRAME_HEIGHT))
ret, frame = cap.read()
print frame
cap.release()
两帧的帧数据完全不同。 这怎么可能?你知道吗
目前没有回答
相关问题 更多 >
编程相关推荐