Install
opencv with ffmpeg and python (build from source, see Python & Opencv)
conda install opencv-python
pip install opencv-python
imageio
conda install -c conda-forge imageio
pip install imageio
Usage
imageio
>>> import imageio
>>> im = imageio.imread('chelsea.png')
>>> im.shape # im is a numpy array
(300, 451, 3)
>>> imageio.imwrite('chelsea-gray.jpg', im[:, :, 0])
import imageio
import visvis as vv
im = imageio.imread('http://upload.wikimedia.org/wikipedia/commons/d/de/Wikipedia_Logo_1.0.png')
vv.imshow(im)
import imageio
reader = imageio.get_reader('imageio:cockatoo.mp4')
for i, im in enumerate(reader):
print('Mean of frame %i is %1.1f' % (i, im.mean()))
import pylab
import imageio
filename = '/tmp/file.mp4'
vid = imageio.get_reader(filename, 'ffmpeg')
nums = [10, 287]
for num in nums:
image = vid.get_data(num)
fig = pylab.figure()
fig.suptitle('image #{}'.format(num), fontsize=20)
pylab.imshow(image)
pylab.show()
import imageio
import visvis as vv
reader = imageio.get_reader('<video0>')
t = vv.imshow(reader.get_next_data(), clim=(0, 255))
for im in reader:
vv.processEvents()
t.SetData(im)
import imageio
reader = imageio.get_reader('imageio:cockatoo.mp4')
fps = reader.get_meta_data()['fps']
writer = imageio.get_writer('~/cockatoo_gray.mp4', fps=fps)
for im in reader:
writer.append_data(im[:, :, 1])
writer.close()
Python & Video & imshow
opencv + video (need ffmpeg build from source)
video
reader=cv2.VideoCapture('/home/nfs/output.mp4') while 1: frame=reader.read() # from camera # _,frame=reader.read() if frame is empty: break process(frame)
imshow
cv2.imshow('img',img); cv2.waitkey(0)
skcikit-image, imageio (need ffmpeg from apt-get)
video
reader = imageio.get_reader(filename) image_nums = reader.get_length() for i, img in enumerate(reader): process(img)
imshow
skimage.io.imshow(img) skimage.io.show() img_rgb=cv2.cvtColor(img,cv2.COLOR_BGR2RGB) #from opencv img(bgr) to scikit-image img(rgb)
opencv3 + python3
import cv2 video_in='/home/yzbx/Videos/sherbrooke_video.avi' video_out='/home/yzbx/Videos/imageio_video_write.avi' cap = cv2.VideoCapture(video_in) frameNum = 1 StartRead=False while True: ret,imgcv=cap.read() if not ret: if frameNum < 10: print('read failed, redo it') elif StartRead: print('video finished') else: print('read failed, check you path or opencv,ffmpeg library') else: if not StartRead: height,width,channel=imgcv.shape wrt = cv2.VideoWriter(filename=video_out, fourcc=cv2.VideoWriter_fourcc('M', 'J', 'P', 'G'), fps=30, frameSize=(width,height)) StartRead=True print('process start, framenum=%d' % frameNum) wrt.write(imgcv) print('process end, framenum=%d' % frameNum) frameNum = frameNum + 1 if frameNum > 100: break cap.release() if StartRead: print('save video to %s'%video_out)
Python & Video Stream & Web
- https://github.com/TibbersDriveMustang/Video-Streaming-Server-and-Client
- https://en.wikipedia.org/wiki/Real_Time_Streaming_Protocol
- https://wiki.videolan.org/Documentation:Streaming_HowTo_New/#Streaming_using_the_GUI
- https://github.com/theopolisme/webcam-streamer
- http://stackoverflow.com/questions/21702477/how-to-parse-mjpeg-http-stream-from-ip-camera
- https://gist.github.com/shihyuan/4d834d429763e953a40c
- http://pythonhosted.org/python-librtmp/
Python & Rstp
- https://stackoverflow.com/questions/20891936/rtsp-stream-and-opencv-python
- https://www.youtube.com/watch?v=y6n3rQbMYmc (youtube OpenCV Basics - 13 - VLC & RTSP Streams)