Редактировать
Извиняюсь за предыдущую общность!
Настоящим я пытаюсь быть яснее. Я тестирую изображение, поэтому я должен написать ряд методов, которые будут запускаться для анализа изображения. Не все протестированные изображения будут одинаковыми, поэтому мне нужен объект для каждого изображения. Многие из методов, которые я буду писать, не работают со всем изображением. Например, у меня есть метод, который возвращает расстояние точки массива от центра изображения, используя константу интервала между пикселями, которая является атрибутом изображения. Здесь у меня есть пример, я читаю изображение и тем самым создаю изображение объекта и некоторые атрибуты, которые мне пригодятся. Но мои точечные объекты, принадлежащие этому изображению, не будут иметь доступа к этим атрибутам, если у них есть собственный класс; полезно иметь класс точек, потому что другой анализ также использует точки и использует те же методы.
class image(object):
def __init__(self, filepath)
#creates an instance of the image from filepath
xscale = self.read_header(xspacing)
xscale = self.read_header(yspacing) #pixels per mm property of image
class point(object):
def __init__(slef, i,j)
self.i = i # array position in image.
self.j = j
self.x = self.i * xscale #real position in mm in image
self.y = self.i * yscale ##but xscale and y scale are not in scope here.
Итак, вопрос в том, как мне задать атрибуты точечных объектов, такие как расстояние, которые зависят от атрибута изображения, такого как xscale и yscale. На мой взгляд, я хочу, чтобы image.point.x был разрешен, где image.point.x зависит от image.xscale. Небольшое осложнение, которое, я думаю, мы можем пока проигнорировать, заключается в том, что точка не должна существовать вне контекста изображения, потому что наличие точки без атрибутов изображения, таких как масштаб, ничего не значит. Я надеюсь, что это понятнее и в целом полезнее. Спасибо.
Оригинальный вопрос.
Я хотел бы иметь открытый образ. Изображение должно быть объектом, так как с ним связано множество методов.. например. чтение информации заголовка и присвоение объекту множества атрибутов, таких как title, sizex, sizey...
Тогда изображения, очевидно, состоят из точек = поэтому я подумал, что у меня будет класс точек. Затем я мог бы определить объект Point, и он мог бы иметь атрибуты, такие как положение (в зависимости от некоторых констант расстояния между пикселями из заголовка изображения). И этот класс будет иметь множество точечных методов, таких как расстояние, изменение значения, перемещение, масштабирование, опрос между двумя точками.... и т.д.
Моя проблема состоит из двух частей. Создание точечных объектов действительно должно зависеть от существования объекта изображения. Я не знаю, как python обрабатывает такое условное создание объектов. И, во-вторых, точечный объект должен знать об объекте изображения, к которому он относится. В идеале у меня был бы Image.Point(x,y), и это означало бы, что точка x,y существует в изображении, и поэтому она могла бы иметь доступ ко всем переменным, созданным при инициализации объекта изображения. Я надеюсь, что все это имеет смысл. Я пробовал super, но, похоже, он не выполняет условный бит и запускает метод в базовом классе, где я просто хочу, чтобы некоторые переменные были доступны.
Спасибо за любую помощь.
Image
создавал свои собственные объектыPoint
при инициализации. Вы уверены, что вам нужен балльный класс? Как насчет:(x, y)
для представления точки? - person phant0m   schedule 02.07.2011