Я работаю, чтобы сравнить различия в двух версиях изображения.Изображение всегда будет черно-белым.В настоящее время у меня есть решение, в котором различия изображений отображаются с красными и голубыми линиями после использования openCV для добавления изображений после удаления цветового канала из каждого изображения.То, что я хочу сделать, чтобы уменьшить визуальный цвет, это сделать одно изображение визуально нетронутым, а другое изображение наложить.С этим наложением разница в линиях будет выделена красным цветом, а остальные остаются черными.(Показано на изображении).A - оригинальная редакция документа.B тот, с изменениями.C - это то, что я хотел бы отобразить, чтобы выделить изменения, а D - то, чего я могу достичь в настоящее время.
У меня была идея, где я мог бы каким-то образом использовать вычитание изображений и полученное изображение и каким-то образом добавить его к основному изображению.Я очень плохо знаком с компьютерным зрением, поэтому я не уверен в правильности всех терминов.Я думал о том, чтобы это изображение вычитания служило маской для исправленного изображения, повернуло все черные пиксели красным, а затем добавило это к «оригиналу».
Вот фрагмент кода, который сгенерируетвывод аналогичен таковому в блоке D изображения.
np_image_A = np.array(image_A)
np_image_B = np.array(image_B)
# Set the green and red channels respectively to 0. Leaves a blue image
np_image_A[:, :, 1] = 0
np_image_A[:, :, 2] = 0
# Set the blue channels to 0.
np_image_B[:, :, 0] = 0
# Add the np images after color modification
overlay_image = cv2.add(np_image_A, np_image_B)
Моя идея приняла форму ниже, но я не был уверен, как продвинуться дальше:
sub = cv2.subtract(image_b, image_a) # Get the areas of difference in the revised image
alpha = 0.75
revision_img = cv2.addWeighted(sub, alpha, image_a, 1-alpha, 0)
После выполнения шага вычитания у меня остался черныйи белое изображение.И после добавления к базовому изображению, чтобы увидеть ревизии, я остаюсь с темным изображением.Я думаю, что после шага вычитания нужно что-то сделать, чтобы черные были прозрачными, а белые линии стали красными, но я не уверен, как этого добиться.