我编写程序来显示图像。
我试图了解代码之间的区别:
plt.imshow(cv2.imread(file_paths[0])[:,:,::-1])
和
plt.imshow(cv2.imread(file_paths[0])[:,:,:])
为什么第一个图像是黄色,第二个图像是蓝色?
答案 0 :(得分:1)
在opencv
中,颜色通道按BGR排序,而matplotlib
将图像视为RGB。因此,要正确显示cv2.imread
在matplotlib
中由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]