Вопрос о генерации "разностных изображений" - PullRequest
0 голосов
/ 06 февраля 2020

Я пытаюсь создать информативные изображения из видеофайлов .avi. Мне было интересно, если бы был способ взять два изображения в оттенках серого - и создать изображение, которое для каждого значения пикселя является разностью значений пикселей в двух выбранных изображениях. Т.е. если пиксель в первом изображении равен 2% (черный (0%) и белый (100%)), а последнее изображение в том же пикселе имеет 25%, сгенерированное изображение в этом пикселе будет составлять 23%.

Ответы [ 2 ]

0 голосов
/ 06 февраля 2020

Вот код, который заработал:

import numpy as np
from PIL import Image

img1 = cv2.imread('img1.jpg')
img2 = cv2.imread('img2.jpg')

diff = np.abs(img1.astype(np.uint) - img2.astype(np.uint)).astype(np.uint8)

img = Image.fromarray(diff)
img.save("diff.png")
0 голосов
/ 06 февраля 2020

Если вы знакомы с python, это довольно просто.

import numpy as np
img1 = #first grayscale image
img2 = #second grayscale image

diff = np.abs(img1.astype(np.uint) - img2.astype(np.uint)).astype(np.uint8)
#diff has the required difference data
#here is the code to save an image (simply chage the extension at "filename.***" to save in the required format)
cv2.imwrite("filename.jpg",diff)
...