Итак, я заметил для себя и нескольких моих коллег, что когда мы отображаем двоичный массив с помощью функции imshow matplotlib.pyplot, края отображаемого изображения кажутся измененными. Некоторое время я думал, что это просто визуальный артефакт, но сегодня столкнулся с новыми проблемами.
Кстати, я использую matplotlib: 3.2.2 и numpy: 1.19.1
Если я создам небольшой двоичный массив и нанесу его на график, вы увидите небольшой «ореол» двоичного блока на изображении. Это не очень очевидно, но оно есть:
import matplotlib.pyplot as plt
import numpy as np
img=np.zeros((100,100))
img[25:60,25:60]=50
plt.imshow(img)
It will become more apparent if i change the cmap for the plot.
my_cmap = plt.cm.get_cmap('prism')
my_cmap.set_under('black')
plt.imshow(img,cmap=my_cmap, vmin=1)
The displayed array should only have 0's as background and 1's in the box, but the box is displayed as a green box with a red/yellow border.
With previous versions of pyplot i have not had this issue and it does become a problem when i do object detection and i want to display them and my other wise binary objects end up like this:
введите описание изображения здесь
Надеюсь, вы поможете мне с этим