Не получен правильный результат вычитания для различия двух изображений в питоне - PullRequest
0 голосов
/ 08 июня 2018

Это мой код Python, где я хочу найти разницу между двумя изображениями.

import cv
import numpy as np
img1=cv.imread('/storage/emulated/0/a.jpg',0)
print(img1[0:1])
img2=img1
img2[0:1994]=1
print(img2[0:1])
rows,cols=img1[0:1].shape
print(rows)
print(cols)
rows,cols=img2[0:1].shape
print(rows)
print(cols)
print(np.subtract(img1[0:1,0:1], img2[0:1,0:1]))

Я вычитаю эти массивы, но всегда получаю ноль.Пожалуйста, помогите по этому вопросу.

1 Ответ

0 голосов
/ 08 июня 2018

Проблема заключается в том, как вы скопировали изображение.

Когда вы присваиваете объект с помощью оператора присваивания (=), изменения, внесенные в один объект, будут отражаться и на другом изображении.Так что ваш случай, когда вы делаете img2 = img1 изменения, сделанные в img2, отражаются и в img1.Следовательно, после вычитания вы получаете ноль всегда .

Быстрое решение проблемы - использование метода copy().Это создает новый объект img2 все вместе.Следовательно, изменения, сделанные в img2, не будут отражены в img1 и наоборот.

img2 = img1.copy() 

Теперь печать print(np.subtract(img1[0:1,0:1], img2[0:1,0:1])) дает мне [[233]]

Посмотрите на ЭТОТ БЛОГ ПОСТ также.

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