Q:

Can an uploaded image be loaded directly by cv2?

I have an uploaded file in memory.  I want to manipulate the file with cv2.  Currently, I write the file to disk then read it with cv2.  How can I skip writing the file and load it directly with cv2?
file = request.files['file']
# if file and allowed_file(file.filename):

# save file            
filename = secure_filename(file.filename)
file_path = os.path.join(dressrank.config['SHOW_IMG_FOLDER'], filename);
file.save(file_path)
img_path = file_path

# COLOR FATURE EXTRACTION
img = read_img(img_path)
img =img_resize(img, 500)

A:

Build a numpy array using the uploaded data. Decode this array using cv2.
img = cv2.imdecode(numpy.fromstring(request.files['file'].read(), numpy.uint8), cv2.IMREAD_UNCHANGED)

Prior to OpenCV 3.0, use cv2.CV_LOAD_IMAGE_UNCHANGED instead.

See also: Python OpenCV load image from byte string

