Я хочу создать переменную, которая хранит некоторые точки за один ROI. Пусть говорят, что это что-то вроде:Namedtuple, который хранит точку
ROI.Point1.x
ROI.Point1.y
ROI.Point2.x
ROI.Point2.y
...
ROI.PointN.x
ROI.PointN.y
Я пытался сделать это с namedtuple
, например, так:
Point = namedtuple("Point", "x y")
ROI = namedtuple("ROI", "Point1 Point2 Point3 ... PointN")
ROI.Point1 = Point
ROI.Point2 = Point
...
ROI.PointN = Point
Я думаю, что это глупая идея. Потому что я должен определить всю точку с помощью «ROI ... = Point».
Если у меня только 1 ROI и какой-то момент, я думаю, что он работает нормально. Но как насчет того, чтобы много ROI со многими очками в них? Это кажется глупой идеей, но пока это работает.
Я также пытался использовать ROI.Point1, ROI.Point2, ..., ROI.PointN = Point
, но у меня есть ошибка, которая говорит 'type' object is not iterable
.
Не мог бы кто-нибудь помочь мне сделать его более простым способом, пожалуйста? Я не хотел делать другой класс, как другие люди.
Почему вы не используете кортеж или список для хранения нескольких точек? – falsetru
Вы не выполняете 'ROI.Point1 = Point'. Вы бы сделали ROI (Point (x1, y1), Point (..), ..) '. 'ROI' и' Point' являются * классами *. –
Yups, идея хранения нескольких точек в кортеже. Насколько я знаю, namedtuple совпадает с кортежем, но он используется как индекс, а кортеж использует численный индекс. (CMIIW) @falsetru –