Здравствуйте У меня есть вопрос относительно sciKit изображения преобразования модуля:SciKit-Image Трансформация
Я пытаюсь найти оптимальное преобразование параметров, которые будут сплющивающимися мои изображения. Допускается до кубического преобразования, т. Е. 20 параметров. Я хочу получить первоначальное предположение для моего полинома третьего порядка, которое должно быть выведено из уже полученного многочлена 2-го порядка. Однако у меня возникли неприятности понимания, какие параметры назначения, где:
import numpy as np
import matplotlib.pyplot as plt
from skimage.transform import warp
from skimage.transform import AffineTransform
from skimage.transform import PolynomialTransform
def polynomialTransform(a0,a1,a2,a3,a4,a5,b0,b1,b2,b3,b4,b5):
array = np.zeros((2,6))
array[0][0] = a0
array[0][1] = a1
array[0][2] = a2
array[0][3] = a3
array[0][4] = a4
array[0][5] = a5
array[1][0] = b0
array[1][1] = b1
array[1][2] = b2
array[1][3] = b3
array[1][4] = b4
array[1][5] = b5
return(PolynomialTransform(array))
def polynomialTransform2(a0,a1,a2,a3,a4,a5,a6,a7,a8,a9,b0,b1,b2,b3,b4,b5,b6,b7,b8,b9):
array = np.zeros((2,10))
array[0][0] = a0
array[0][1] = a1
array[0][2] = a2
array[0][3] = a3
array[0][4] = a4
array[0][5] = a5
array[0][2] = a6
array[0][3] = a7
array[0][4] = a8
array[0][5] = a9
array[1][0] = b0
array[1][1] = b1
array[1][2] = b2
array[1][3] = b3
array[1][4] = b4
array[1][5] = b5
array[1][2] = b6
array[1][3] = b7
array[1][4] = b8
array[1][5] = b9
return(PolynomialTransform(array))
Теперь я пытаюсь понять, какие параметры из второго порядка соответствует коэффициентам, которые в полиномом третьего порядка. Я бежал несколько тестов:
def doTransfrom(cubeROI): #Enter any image in the format of an n*m numpy array
x0 = np.asarray([1,1,0,0,0,0,0,0,1,1,1,1])
pCubic = np.asarray([1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1])
quadratic=warp(cubeROI,polynomialTransform(x0[0],x0[1],x0[2],x0[3],x0[4],x0[5],x0[6],x0[7],x0[8],x0[9],x0[10],x0[11]))
cubic=warp(cubeROI,polynomialTransform2(pCubic[0],pCubic[1],pCubic[2],pCubic[3],pCubic[4],pCubic[5],pCubic[6],pCubic[7],pCubic[8],pCubic[9],pCubic[10],pCubic[11],pCubic[12],pCubic[13],pCubic[14],pCubic[15],pCubic[16],pCubic[17],pCubic[18],pCubic[19]))
plt.imshow(quadratic)
plt.show()
plt.imshow(cubic)
plt.show()
Как вы можете видеть первые 2 и последние 4 параметры соответствуют друг другу ... Но я изо всех сил, чтобы выяснить 5 параметров, которые остались от квадратичного преобразования. На самом деле у меня такое ощущение, что ни один из параметров, которые появляются после «a1», ничего не делает - Таким образом, я считаю, что моя проблема возникает из-за того, что я кормлю свои an/bn s в PolynomialTrasnsform! Что я делаю не так?!
Что я действительно пытаюсь сделать: Для лучшего понимания - Я пытаюсь найти такую систему координат, для которой разность набора изображений от его медианы минимальна:
min_(an,bn): chi^2 = (Delta - I(f(x,y,a_n,b_n))^2
Каких преобразований координат Вас интересуют? И как будет выглядеть искаженное изображение? Можете ли вы прояснить описание «отличия набора изображений от его медианы»? Возможно, вы пытаетесь зарегистрировать изображения? –
Привет, Стефан, у меня есть набор из 200 астрономических изображений, которые вычитаются из медианного изображения: pixel (i, j) _median = median (все пиксели (i, j)), которые показывают небольшое искажение. Я хочу сгладить их с помощью преобразования координат: таким образом, я ищу оптимальные (в смысле chi ** 2) коэффициенты преобразования координат a_n, b_n. Что я делаю, я разрешаю минимизировать минимальный уровень (медиа-обертка (Image_N, polytransform)). Поскольку для этого требуется численная тонкая настройка, я начинаю с полигона 1-го порядка, передаю установленную a_n, b_n в функцию соответствия 2-го порядка, чем передаю эти значения в 3-й порядок. Но я решил свою проблему! – Sebastiano1991