2012-07-02 90 views
2

我使用示例代码读取/写入jpg文件,但丢失颜色。opencv imread/imwrite损失颜色

import sys 
fn1,fn2 = sys.argv[1:3] 
import numpy as np, cv2 

img1 = cv2.imread(fn1, 0) 
vis = cv2.cvtColor(img1, cv2.COLOR_GRAY2BGR) 
cv2.imwrite(fn2, vis) 

你能帮我找到程序吗?

+0

我认为,这个脚本产生一个错误,如果youu想打开一个JPG文件,然后把它的灰色转换成另一个文件使用'cv2.COLOR_BGR2GRAY'而不是不存在的'cv2.COLOR_GRAY2BGR' – hamed

+0

使用'cv.BGR2GRAY'而不是不存在'cv2.COLOR_GRAY2BGR',并且改变'cv2.imread(fn1, 0)'到'cv2.imread(fn1)' – hamed

回答

0

使用这个代码,而不是找到差异

import sys 
fn1,fn2 = sys.argv[1:3] 
import numpy as np, cv2, cv 

img1 = cv2.imread(fn1) 
vis = cv2.cvtColor(img1, cv.CV_BGR2GRAY) 
cv2.imwrite(fn2, vis) 
0

默认情况下打开的图像文件格式BGR。但您正尝试将其从Gray转换为BGR


// this conversion is incorrect 
vis = cv2.cvtColor(img1, cv2.COLOR_GRAY2BGR) 
cv2.imwrite(fn2, vis) 

如果您不想进行任何转换,请删除此行cv2.cvtColor(...)。试试吧。

IMG1 = cv2.imread(FN1,0)
cv2.imwrite(FN2,IMG1)