2017-08-16 47 views
0

我在argv中加載一個cr2文件...然後我想將它轉換爲opencv格式,所以我可以在應用程序中使用它(而不是將其另存爲文件)。它首先加載Rawkit。OpenCV和rawkit python

raw_image = Raw(sys.argv[1]) 
buffered_image = np.array(raw_image.to_buffer()) 
image = Image.frombytes('RGB', (raw_image.metadata.width, raw_image.metadata.height), buffered_image) 

image = cv2.cvtColor(np.array(image), cv2.COLOR_RGB2BGR) 

這是我的嘗試。

圖像加載,看起來很可憐​​的一幫角曲折

本質的:我需要

image = Image.frombytes('RGB', (raw_image.metadata.width, raw_image.metadata.height), buffered_image) 

轉換爲相同的格式,會是怎樣,如果我使用

image = cv2.imread(imagePath) 

回答

0

如果使用rawpy它可能會更容易:

import rawpy 
import cv2 

raw = rawpy.imread("path/to/file") # access to the RAW image 
rgb = raw.postprocess() # a numpy RGB array 
image = cv2.cvtColor(rgb, cv2.COLOR_RGB2BGR) # the OpenCV image 
cv2.imwrite("foo.png", image) 

我剛試過,它沒有問題。