2015-11-30 90 views
0

我試圖將base64(http://pastebin.com/uz4ta0RL)中的該字符串轉換爲OpenCV可用的字符串。 目前我正在使用此代碼(img_temp是字符串),通過將其轉換爲臨時圖像(imagetosave.jpg),然後使用cv2.imread加載臨時圖像來使用OpenCV功能。Python:從base64字符串轉換爲opencv的替代方法

fh = open('imagetosave.jpg','wb') 
    fh.write(img_temp.decode('base64')) 
    fh.close() 

    img = cv2.imread('imagetosave.jpg',-1) 

儘管這種方法有效,但我希望能夠在不使用臨時圖像的情況下使用OpenCV功能。 幫助將不勝感激,謝謝!

+0

http://stackoverflow.com/a/33522724/5008845 – Miki

+0

謝謝,我想我已經嘗試過,但我猜不是! – user3547372

回答

0

要的base64字符串轉換爲正常可以使用

import base64 
base64.b64decode("TGlrZSB0aGF0Cg==") 

,但如果是你需要什麼itsn't不清楚。

+0

所以我希望能夠使用從base64到OpenCV可用的格式的字符串,而不必在imagetosave.jpg上寫字,因爲它充當臨時圖像。 – user3547372

+0

你應該使用cv2.imdecode –

0

您可以將解碼後的字符串轉換爲整數的列表,然後你就可以傳遞給imdecode功能:

img_array = map(int, img_temp.decode('base64')) 
img = cv2.imdecode(img_array, -1) 
+0

我得到:int()與基數10 – user3547372