У меня есть два изображения RGB представления графика скалярной переменной при некоторой геометрии. Моя цель состоит в том, чтобы найти способ построить разницу в этой переменной между двумя изображениями и окрасить его настраиваем преобразовать два изображения в сером шкале, но после этого я совершенно потерян в понимании того, как правильно отобразить отрицательные и положительные значения из разницы в массивах. < /p>
Пока я написал этот кусок кода: < /p>
У меня есть два изображения RGB представления графика скалярной переменной при некоторой геометрии. Моя цель состоит в том, чтобы найти способ построить разницу в этой переменной между двумя изображениями и окрасить его настраиваем преобразовать два изображения в сером шкале, но после этого я совершенно потерян в понимании того, как правильно отобразить отрицательные и положительные значения из разницы в массивах. < /p> Пока я написал этот кусок кода: < /p> [code]import numpy as np import matplotlib as mpl from PIL import Image, ImageChops
img1 = Image.open('img1.png').convert('L') img2 = Image.open('img2.png').convert('L') cm = mpl.colormaps['bwr'] img1_array = np.asarray(img1) img2_array = np.asarray(img2) diff_img = img1_array - img2_array im = cm(diff_img) im = np.uint8(im * 255) im = Image.fromarray(im).save("test_diff.png") [/code] Но это далеко, чтобы получить разыскиваемый результат:
изображение 1
image 2 < /p>
Редактировать: < /p> Я проверил предложение Мартина И получение этого с этим кодом: < /p> [code]from PIL import Image, ImageChops import numpy as np import matplotlib as mpl import matplotlib.pyplot as plt
# open images img1 = Image.open('img1.png').convert('L') img2 = Image.open('img2.png').convert('L')
figure.tight_layout() figure.savefig('foo.png', dpi=150, bbox_inches='tight') < /code> Изменить 2: < /p> from PIL import Image, ImageChops import numpy as np import matplotlib as mpl import matplotlib.pyplot as plt import cv2 as cv
from scipy.interpolate import interp1d
# open images img1 = Image.open('test_1.png').convert('L') img2 = Image.open('test_2.png').convert('L')
#img1.save('test_L.png') #img2.save('test_L.png')
w,h = img1.width, img1.height
arr1 = np.asarray(img1) arr2 = np.asarray(img2)
diff = arr1 - arr2
m = interp1d([0,255],[-3, 1]) arr1_m = [] arr2_m = [] for n, val in enumerate(arr1): arr1_m.append((m(val)).tolist()) arr1_m = np.array(arr1_m) for n, val in enumerate(arr2): arr2_m.append((m(val)).tolist()) arr2_m = np.array(arr2_m)
У меня есть два изображения RGB представления графика скалярной переменной при некоторой геометрии. Моя цель состоит в том, чтобы найти способ построить разницу в этой переменной между двумя изображениями и окрасить его настраиваем преобразовать два...
У меня есть два изображения RGB представления графика скалярной переменной при некоторой геометрии. Моя цель состоит в том, чтобы найти способ построить разницу в этой переменной между двумя изображениями и окрасить его настраиваем преобразовать два...
У меня есть два изображения RGB представления графика скалярной переменной при некоторой геометрии. Моя цель состоит в том, чтобы найти способ построить разницу в этой переменной между двумя изображениями и окрасить его настраиваем преобразовать два...
У меня есть два изображения RGB представления графика скалярной переменной при некоторой геометрии. Моя цель состоит в том, чтобы найти способ построить разницу в этой переменной между двумя изображениями и окрасить его настраиваем преобразовать два...
Я изо всех сил пытаюсь добиться того же результата, что и поля формы Flowbite. Кажется, они используют рамку в 1 пиксель в фокусе (с прозрачным контуром в 2 пикселя), но результат выглядит как граница в 2 пикселя...
Как предотвратить смещение макета...