Когда вы открываете изображение с помощью PIL, например:
im = Image.open('1.png')
, вы получаете изображение RGB.
Затем вы (без необходимости) преобразовали его в BGR, который OpenCV использует:
opencvimage = cvtColor()
но вы отображаете его с помощью matplotlib
, который использует RGB !!!
Я сказал вам, что вы запутаете себя *
Если вы хотите отобразить изображение RGB PIL с помощью PIL:
pRGB = Image.open('1.png') # PIL RGB
pRGB.show()
Если вы хотите отобразить изображение RGB PIL с помощью matplotlib:
pRGB = Image.open('1.png') # PIL RGB
nRGB = np.array(pRGB) # Numpy RGB
plt.imshow(nRGB)
Если вы хотите отобразить Изображение OpenCV с matplotlib:
nBGR = cv2.imread('1.png')
plt.imshow(nBGR[:,:,::-1])