Регистрация изображений микроматрицыPython

Программы на Python
Anonymous
Регистрация изображений микроматрицы

Сообщение Anonymous »

Как я могу зарегистрировать эти два изображения?
Изображение

Изображение

Они массивы магнитных микроточек в разных магнитных полях.
Вычитая одно из другого, я смогу различить магнитный контраст.
после определения функции растяжения контраста:

Код: Выделить всё

def stretch(i,mt=2,Mt=98):
minval = np.percentile(i, mt)
maxval = np.percentile(i, Mt)
imgsub = np.clip(i, minval, maxval)
imgstretched = ((imgsub - minval) / (maxval - minval)) * 255
return imgstretched
Я попробовал SciKit:

Код: Выделить всё

from skimage.registration import phase_cross_correlation
from scipy.ndimage import fourier_shift
shift, error, diffphase = phase_cross_correlation(img, imgsat, upsample_factor=100)
offset_image = fourier_shift(np.fft.fftn(img), shift)
offset_image = np.fft.ifftn(offset_image)
plt.imshow(stretch(offset_image.real-imgsat,mt=2,Mt=98), cmap='gray')
Я попробовал пакет регистрации изображений (https://image-registration.readthedocs.io/en/latest/):

Код: Выделить всё

from image_registration import chi2_shift
from image_registration.fft_tools import shift
import noise
xoff, yoff, exoff, eyoff = chi2_shift(img, imgsat,return_error=True, upsample_factor='auto')
corrected_image2 = shift.shiftnd(img, (-yoff, -xoff))
imgs = corrected_image2-imgsat
plt.imshow(stretch(imgs,mt=2,Mt=98), cmap="gray")
Последний раз я пробовал PyStackReg

Код: Выделить всё

from pystackreg import StackReg
sr = StackReg(StackReg.TRANSLATION)
out_tra = sr.register_transform(imgsat, img)
plt.imshow(stretch(out_tra-imgsat,mt=2,Mt=98), cmap='gray')
Во всех случаях вычитание завершается неудачно, и результаты аналогичны этому (это для SciKit):
Изображение

Могу добавить, что массив на изображениях смещается, но некоторые детали, например, два черных пятнышка на влево, остаются стабильными, так как дефекты в оптике.
Можете ли вы предложить мне какую-нибудь альтернативу?

Подробнее здесь: https://stackoverflow.com/questions/787 ... gistration

Вернуться в «Python»