Я пытаюсь обработать следующее изображение. Это изображение искажено как по горизонтали, так и по вертикали. Я могу исправить искажение по горизонтали, используя переназначение открытого cv, но не уверен, как применить ту же логику для вертикальной оси y. Я пытался инвертировать ось вкод, но это не дает ожидаемого результата.
Как мне сделать, чтобы изгиб l в прямой l.
код
img = cv2.imread('test.png',0)
phase = 1.2 * np.pi
omega = 2.0 * np.pi / img.shape[1]
amp = 18.0
proj = np.zeros((img.shape[0], img.shape[1], 2), np.float32)
for y in range(img.shape[0]):
for x in range(img.shape[1]):
u = 0.0
v = np.sin(phase + float(x) * omega) * amp
proj[y, x] = (float(x) + u, float(y) + v)
corr = cv2.remap(img, proj, None, cv2.INTER_LINEAR)
cv2.imshow('in', img)
cv2.imshow('out', corr)
cv2.waitKey()
оригинальное изображение
обработанное изображение: