且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

如何从内存缓冲区(StringIO)或使用opencv python库的url读取映像

更新时间:2022-01-28 23:41:25

要使用内存缓冲区(StringIO)创建OpenCV图像对象,我们可以使用OpenCV API imdecode,请参阅下面的代码:

To create an OpenCV image object with in memory buffer(StringIO), we can use OpenCV API imdecode, see code below:

import cv2
import numpy as np
from urllib2 import urlopen
from cStringIO import StringIO

def create_opencv_image_from_stringio(img_stream, cv2_img_flag=0):
    img_stream.seek(0)
    img_array = np.asarray(bytearray(img_stream.read()), dtype=np.uint8)
    return cv2.imdecode(img_array, cv2_img_flag)

def create_opencv_image_from_url(url, cv2_img_flag=0):
    request = urlopen(url)
    img_array = np.asarray(bytearray(request.read()), dtype=np.uint8)
    return cv2.imdecode(img_array, cv2_img_flag)