Вы можете imshow
изображение в исходном разрешении, рассчитав соответствующий размер рисунка, который зависит от значения dp (точек на дюйм) для matplotlib. Значение по умолчанию - 100 dpi, и оно сохраняется в matplotlib.rcParams['figure.dpi']
.
. Таким образом, imshow
при таком изображении
import cv2
from matplotlib import pyplot as plt
import matplotlib
%matplotlib inline
# Acquire default dots per inch value of matplotlib
dpi = matplotlib.rcParams['figure.dpi']
img = cv2.imread(r'0261b27431-07_D_01.jpg')
# Determine the figures size in inches to fit your image
height, width, depth = img.shape
figsize = width / float(dpi), height / float(dpi)
plt.figure(figsize=figsize)
plt.imshow(img)
plt.show()
печатает его в большом разрешении, но с недостатком: что метки оси крошечные по сравнению с большим изображением. Вы можете обойти это, установив другие rcParams
на более высокие значения, например
# Do the same also for the 'y' axis
matplotlib.rcParams['xtick.labelsize'] = 50
matplotlib.rcParams['xtick.major.size'] = 15
matplotlib.rcParams['xtick.major.width'] = 5
...
Ваше второе предложение открыть изображение в другом окне будет работать следующим образом: вы меняете бэкэнд matplotlib с помощью I python magi c команды, заменив %matplotlib inline
в приведенном выше примере, например,
%matplotlib qt # opens the image in an interactive window with original resolution
или
%matplotlib notebook # opens the image in an interactive window 'inline'
См. здесь для дополнительной информации о бэкэнде possibilites. Обратите внимание, что расчет исходного размера фигуры также должен быть выполнен до этого.