rosbagToPictures.py
import rospy
from sensor_msgs.msg import Image
from cv_bridge import CvBridge, CvBridgeError
import os
import cv2
savePath = 'highwayPictures'
if not os.path.exists(savePath):
os.makedirs(savePath)
count = 0
bridge = CvBridge()
def callbackFunc(image):
global count
global bridge
try:
frame = bridge.imgmsg_to_cv2(image, "bgr8")
count += 1
print('frame {} receive success'.format(count))
cv2.imwrite('./highwayPictures/{}.jpg'.format(count), frame)
except CvBridgeError as e:
print(e)
def msg_subscriber():
rospy.init_node('msg_subscriber', anonymous=True)
rospy.Subscriber('/miivii_gmsl_ros/camera3', Image, callbackFunc)
rospy.spin()
if __name__ == '__main__':
msg_subscriber()
rosbagToVideo.py
import rospy
from sensor_msgs.msg import Image
from cv_bridge import CvBridge, CvBridgeError
import os
import cv2
video_output = 'video.mp4'
fourcc = cv2.VideoWriter_fourcc(*'XVID')
fps = 25
size = (1280, 720)
out = cv2.VideoWriter(video_output, fourcc, fps, size)
count = 0
bridge = CvBridge()
def callbackFunc(image):
global count
global bridge
try:
frame = bridge.imgmsg_to_cv2(image, "bgr8")
count += 1
print('frame {} receive success'.format(count))
out.write(frame)
except CvBridgeError as e:
print(e)
def msg_subscriber():
rospy.init_node('msg_subscriber', anonymous=True)
rospy.Subscriber('/miivii_gmsl_ros/camera1', Image, callbackFunc)
rospy.spin()
if __name__ == '__main__':
msg_subscriber()
out.release()
videoToPictures.py
import os
import cv2
from moviepy.editor import VideoFileClip
if not os.path.exists('original_image'):
os.makedirs('original_image')
video_input = 'project_video.mp4'
cap = cv2.VideoCapture(video_input)
count = 1
while(True):
ret, image = cap.read()
if ret:
cv2.imwrite('original_image/' + str(count) + '.jpg', image)
count += 1
else:
break
cap.release()
picturesToVideo.py
import cv2
import os
video_output = 'video.mp4'
fourcc = cv2.VideoWriter_fourcc(*'XVID')
fps = 25
size = (1280, 720)
out = cv2.VideoWriter(video_output, fourcc, fps, size)
imgPath = './highwayPictures/'
imgList = os.listdir(imgPath)
imgList.sort()
for imgName in imgList:
image = cv2.imread(imgPath+imgName)
out.write(image)
out.release()