[:,:,::-1]和[:,:,:]

时间:2019-08-10 18:10:44

标签: python cv2 numpy-ndarray

我编写程序来显示图像。

我试图了解代码之间的区别:

plt.imshow(cv2.imread(file_paths[0])[:,:,::-1])

plt.imshow(cv2.imread(file_paths[0])[:,:,:])

为什么第一个图像是黄色,第二个图像是蓝色?

2 个答案:

答案 0 :(得分:1)

opencv中,颜色通道按BGR排序,而matplotlib将图像视为RGB。因此,要正确显示cv2.imreadmatplotlib中由plt.imshow(cv2.imread(file_paths[0])[:,:,::-1]) 加载的图像,必须颠倒通道的顺序。可以通过以下方式完成:

plt.imshow(cv2.cvtColor(cv2.imread(file_paths[0], 1), cv2.COLOR_BGR2RGB))

background.js

答案 1 :(得分:0)

这在Python中称为扩展切片
您可以看到相关的Python docs

>>> a = [1, 2, 3, 4, 5]
>>> a[:]
[1, 2, 3, 4, 5]
>>> a[::-1]
[5, 4, 3, 2, 1]