opencv的使用(python)-读取图片,视频

opencv的使用(python)

###1. 读取图片

image=cv2.imread('F:\\demo\\123.jpg')
print(image.shape) #(300, 533, 3)读进来的尺寸是(高度,长度,通道)
print(np.asarray(image.shape[:2][::-1])) #[533 300] 
#解析:[:2]表示只取前两维,[::-1]表示逆序,相当于得到了长度,高度。

opencv的cv2.imread()读取的是BGR格式图像,需要转换成RGB,这里列出两种转换成RGB的方法~

img=cv2.imread('F:\\demo\\123.jpg')
plt.imshow(img)
plt.show()   
#【方法1】
b,g,r = cv2.split(img)
img2 = cv2.merge([r,g,b])
plt.imshow(img2)
plt.show()
#【方法2】
image = img[:, :, ::-1]

###2. 读取视频

import cv2
videoCapture = cv2.VideoCapture('demo.avi')
fps = videoCapture.get(cv2.CAP_PROP_FPS) #获取帧率
size = (int(videoCapture.get(cv2.CAP_PROP_FRAME_WIDTH)),  #获取视频尺寸
        int(videoCapture.get(cv2.CAP_PROP_FRAME_HEIGHT)))
while(1):
    ret, frame = videoCapture.read() #读帧
    cv2.imshow("capture", frame)  #显示视频
    if cv2.waitKey(100) & 0xFF == ord('q'): #按q键退出
        break
videoCapture.release()  
cv2.destroyAllWindows() #释放窗口

###3. 读取视频帧,并转换成视频流

im_dir = 'F:\\demo\\car' #图片路径
video_dir = 'F:\\demo\\out.avi' #输出视频路径
fps = 30  #帧率
num = 284 #图片数 
img_size = (1104,622) #图片尺寸

fourcc = cv2.VideoWriter_fourcc('M','J','P','G') #opencv3.0
videoWriter = cv2.VideoWriter(video_dir, fourcc, fps, img_size)

for i in range(1,num):
    im_name = os.path.join(im_dir, str(i).zfill(8)+'.jpg')
    frame = cv2.imread(im_name)
    videoWriter.write(frame)
    #print(im_name)

videoWriter.release()
print('finish')
#【注意】:图片命名格式为“00000001.jpg”,“00000002.jpg”等

猜你喜欢

转载自blog.csdn.net/aaon22357/article/details/82942294