Что такое x [:,:, :: - 1] в python - PullRequest
0 голосов
/ 29 мая 2020
import numpy as np 
import cv2 as cv
from matplotlib import pyplot as plt
img=cv.imread("content.jpg")
x=np.array(img,dtype=np.uint8)
y=x[:,:,::-1]
plt.imshow(x,interpolation='nearest')
plt.show()
plt.imshow(y,interpolation='nearest')
plt.show()

У меня есть некоторые сомнения относительно этого кода

  1. Что y=x[:,:,::-1] делает в этом коде.
  2. Сюжет изображения x отличается от исходного изображения, почему это так?
  3. Сюжет изображения y такой же, как и исходное изображение, в чем причина?

1 Ответ

2 голосов
/ 29 мая 2020

cv2 считывает изображение как BGR, то есть пиксели расположены в порядке BGR. С другой стороны, plt.imshow() использует более общие настройки RBG.

x[:,:,::-1] по существу меняет порядок цветов, поэтому BGR становится RGB.

Таким образом, команда

y = x[:,:,::-1]

эквивалентна cv2.cvtColor:

y = cv2.cvtColor(x, cv2.COLOR_BGR2RGB)
...