чтение изображений TIFF в Matplotlib - PullRequest
0 голосов
/ 04 июня 2019

Я пытаюсь прочитать изображение в формате TIFF (иногда PNG), используя matplotlib и создавая класс, чтобы иметь возможность читать и наносить на карту несколько изображений, связанных с объектом.Код внутри определения класса сейчас не важен.

Но у меня есть один вопрос.Когда я включаю последний параграф в код перед определением класса, я могу прочитать и показать изображение, но когда я включаю его после определения класса, оно не работает.Может ли кто-нибудь помочь мне понять, почему это происходит?

Я пробовал это с одним и несколькими изображениями

import matplotlib.pyplot as plt
import numpy as np
import math
import random
from matplotlib.ticker import FormatStrFormatter
from mpl_toolkits.mplot3d import Axes3D
import pandas as pd
import matplotlib.image as mpimg

fig,line,labels,ax={},{},[50],{}
X=[3000]
Y=[3000]
Z=[3000]
titles=r'microscopy'

class plotter:

    def figures(self, heading, titles, ax, fig, style, lxlim, uxlim, lylim, uylim, xlabel, ylabel):
    self.heading=heading
    self.titles=titles
    self.ax=ax
    self.fig=fig
    self.style=style
    plt.style.use(self.style)
    self.fig=plt.figure(self.heading)
    self.ax=self.fig.add_subplot(111)
    self.lxlim=lxlim
    self.uxlim=uxlim
    self.lylim=lylim
    self.uylim=uylim
    self.ax.set_xlabel(xlabel)
    self.ax.set_ylabel(ylabel)
    self.ax.grid(True)
    #self.ax.grid(False)
    self.ax.set_xlim([lxlim, uxlim])
    self.ax.set_ylim([lylim, uylim])
    self.ax.set_title(self.titles,style='italic')
    #self.ax.xaxis.set_minor_formatter(FormatStrFormatter("%.2f"))
    self.ax.xaxis.set_major_locator(plt.MultipleLocator(50))
    self.ax.xaxis.set_major_locator(plt.MaxNLocator(12))
    self.ax.yaxis.set_major_locator(plt.MaxNLocator(10))
    self.ax.xaxis.set_minor_locator(plt.MultipleLocator(10))
    #self.ax.invert_yaxis()
    #self.ax.xaxis.tick_top()
    #self.ax.xaxis.set_ticks_position('top')
    #self.ax.tick_params(labelbottom='off',labeltop='on')
    #column_labels = list('ABCD')
    #row_labels = list('WXYZ')
    #self.ax.set_xticklabels(column_labels, minor=False)
    #self.ax.set_yticklabels(row_labels, minor=False)
    #self.ax.xaxis.set_major_locator(plt.NullLocator())
    #self.ax.yaxis.set_major_locator(plt.NullLocator())
    #self.ax.xaxis.set_major_formatter(plt.NullFormatter())
    #ticks=np.linspace(200,700,26,endpoint=False)
    #ax.tick_params(axis='x', which='minor', bottom=True)
    #self.ax.set_xticks(ticks,minor=True)
    #self.fig.savefig('figure.png', bbox_inches='tight')

styler = dict(size=11, color='brown')
spectra=plotter()
spectra.figures('Fibres', 'Fibres', ax, fig, 'classic', None, None, None,None,None,None)

image1=mpimg.imread('geter.png')
imgplot = plt.imshow(image1)
#spectra.ax.imshow(image1)
plt.show()
#spectra.ax.axis('off')

Когда я включаю последний абзац перед определением класса, это дает право читатьданные изображения, но когда они идут после определения класса (как показано в коде сейчас), я просто получаю изображение с осями и простым желтым цветом.Я не могу понять почему.Мое изображение - это просто скриншот расположения папок.Сейчас я еще не связывал оси объекта с отображением изображения, так как определение моего класса не завершено.Но я хочу знать, почему это происходит.

2) И второе: когда я использую

spectra.ax.imshow(....)

вместо

plt.imshow(....)

Кодне работает и дает тот же желтый оттенок изображения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...