的圖像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