的图像C,d,e和下面的显示色彩空间转换˚F他们也正好是numpy的阵列<type 'numpy.ndarray'>
:
import numpy, cv2
def show_pic(p):
''' use esc to see the results'''
print(type(p))
cv2.imshow('Color image', p)
while True:
k = cv2.waitKey(0) & 0xFF
if k == 27: break
return
cv2.destroyAllWindows()
b = numpy.zeros([200,200,3])
b[:,:,0] = numpy.ones([200,200])*255
b[:,:,1] = numpy.ones([200,200])*255
b[:,:,2] = numpy.ones([200,200])*0
cv2.imwrite('color_img.jpg', b)
c = cv2.imread('color_img.jpg', 1)
c = cv2.cvtColor(c, cv2.COLOR_BGR2RGB)
d = cv2.imread('color_img.jpg', 1)
d = cv2.cvtColor(c, cv2.COLOR_RGB2BGR)
e = cv2.imread('color_img.jpg', -1)
e = cv2.cvtColor(c, cv2.COLOR_BGR2RGB)
f = cv2.imread('color_img.jpg', -1)
f = cv2.cvtColor(c, cv2.COLOR_RGB2BGR)
pictures = [d, c, f, e]
for p in pictures:
show_pic(p)
# show the matrix
print(c)
print(c.shape)
这里看到更多的信息:http://docs.opencv.org/modules/imgproc/doc/miscellaneous_transformations.html#cvtcolor
或者你可以:
img = numpy.zeros([200,200,3])
img[:,:,0] = numpy.ones([200,200])*255
img[:,:,1] = numpy.ones([200,200])*255
img[:,:,2] = numpy.ones([200,200])*0
r,g,b = cv2.split(img)
img_bgr = cv2.merge([b,g,r])
感谢您的评论@beaker!然而,这个问题的问题在于海报在'imshow()'中忘记了一个参数。我的问题是'imshow' /'imwrite'不会像上面创建的numpy数组那样。 – jmanring220 2014-10-31 20:08:48
你想把它保存为'BGR'还是'RGB'?标题和问题都有。 – jmunsch 2014-10-31 20:27:52
@ jmanring220是的,但答案仍然显示如何将numpy数组转换为mat。 – beaker 2014-10-31 21:02:15