2013-10-23 7 views
1

Flask 프레임 워크 앱에서 파일을 업로드하고 있습니다. 이 파일은 OpenCV (파이썬에서)로 처리하고자하는 이미지입니다. 이 업로드 된 파일을 먼저 HDD에 저장하면 전체 작업 속도가 느려집니다 (OpenCV로 이미지를 저장하고로드하는 추가 시간).파이썬과 OpenCV로 HDD에 저장하지 않고 업로드 된 이미지로드

Werkzeug FileStorage 객체 (메모리)에서 직접 이미지를로드 할 수 있습니까?

답변

2

편집 : OpenCV 로직에 입력으로 FileStorage.stream을 사용할 수 있다고 생각합니다. 오브젝트와 같은 파일입니다. 작동하지 않는 경우 아래를 참조하십시오. 자체 파일 - 류의 객체가 될 것 같지 않습니다

FileStorage 때문에 (werkzeug.datastructures.FileStorage.stream 참조), 당신이 할 수있는 일이 하나에 save()입니다 :

from cStringIO import StringIO 
inmem_file = StringIO() 
file_storage.save(inmem_file) # save to memory 
inmem_file.reset() # seek back to byte 0, otherwise .read() will return '' 
use_with_open_cv(inmem_file) 

이 OpenCV의 임의의 파일 - 작업 할 수 있습니다 가정한다 실제 파일을 나타내는 객체 만이 아닙니다.

+0

Thanks @ErikAllik! 질문에 게시 된 코드를 사용했습니다. @NoamGeffen by http://stackoverflow.com/questions/11552926/how-to-read-raw-png-from-an-array-in-python-opencv – winnfield

관련 문제