@Nik87

Как реализовать на python передачу «указателя» изображения opencv в конструктор другого класса?

Здравствуйте. Как реализовать на питоне такую схему?
p.s Сейчас передача параметра (img) в конструктор класса A идет по ссылке, но при вызове метода painter нет изображения, т.к в переменную img класса В перезаписывается другая ссылка

class A:
  def __init__(self, img):
   self.img = img
  def show(self):
   cv2.imshow(self.img)
   cv2.waitKey(33)

class B:
  def __init__(self):
   ...
   self.img = np.array((1,1,1),np.uin8)
   self.painter = A(self.img)

  def getImg(self):
    whille True:
       _, self.img = self.cap.read()
      self.painter.show()
  • Вопрос задан
  • 207 просмотров
Пригласить эксперта
Ответы на вопрос 2
@bacon
Из примера не понятно что у вас за проблема, кроме потерянных отступов, ну к painter (может pointer?) надо добавить self, если вы хотите ,чтобы он был доступен между методами.
Ответ написан
@Andy_U
После обсуждения исправил ответ:

from typing import Any

import cv2
import numpy


class A:

    @staticmethod
    def show(img: numpy.ndarray) -> None:
        cv2.imshow('image', img)
        cv2.waitKey(3300)


class B:

    def __init__(self, painter: Any):
        self.painter = painter

    def getimg(self) -> None:
        while True:
            self.painter.show(cv2.imread('Capture.JPG'))


if __name__ == '__main__':
    b = B(A())
    b.getimg()
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
iCode Москва
от 90 000 до 200 000 ₽
SwapZilla.co Москва
от 200 000 ₽
SwapZilla.co Сочи
от 200 000 ₽