Почему я не могу скопировать и вставить изображение в какую-то позицию, используя OpenCV, когда оно объявлено как переменное имя? - PullRequest
0 голосов
/ 16 января 2019

Я пытаюсь обрезать определенную часть двух изображений и поменять местами положение этих изображений в основном изображении с помощью OpenCV.

Ниже приведен код, который я использую для выполнения вышеуказанного требования

    image1 = img[198:238, 456:654]
    image2 = img[120:282, 487:534]
    resized_image = cv2.resize(image1, (90, 221)) 
    resized_image1 = cv2.resize(image2, (211, 90)) 
    img[120:282, 487:534] = resized_image
    img[198:238, 456:654] = resized_image1
    cv2.imwrite('01.png',img)

приведенный выше код успешно меняет положение двух изображений, но когда я передаю значение динамически, я объявляю положение изображения, которое будет разрезано как переменную, скажем, «положение», когда я использую это переменное изображение, не будет заменено, как показано в примере ниже

    position[0] = img[198:238, 456:654]
    position[1] = img[120:282, 487:534]
    image1 = position[0]
    image2 = position[1]
    resized_image = cv2.resize(image1, (90, 221)) 
    resized_image1 = cv2.resize(image2, (211, 90)) 
    position[1] = resized_image
    position[0] = resized_image1
    cv2.imwrite('01.png',img)

здесь изображение остается таким же, каким оно было до того, как обмен не произошел. image1 = position[0] обрезает изображение в заданной позиции, но когда я пытаюсь вставить изображение, используя position[1] = resized_image, на самом деле ничего не происходит, ожидается, что оно будет изменено. Так что же происходит, почему обмен не происходит. Как я могу это исправить?

1 Ответ

0 голосов
/ 16 января 2019

Использование img [198: 238, 456: 654] возвращает новое изображение, не ссылка на исходное изображение. Таким образом, позиция [0] фактически содержит новое изображение с измененной областью интереса.

Вы можете решить эту проблему, создав список кортежей со значениями x / y для каждого RoI и используйте их для изменения размера и обмена RoI.

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