Функция кусочной деформации Skimage дает черную границу на выходном изображении - PullRequest
0 голосов
/ 21 мая 2019
import numpy as np
from skimage.transform import PiecewiseAffineTransform, warp
from skimage import io


calc_height = 100
calc_width = 100


tform = PiecewiseAffineTransform()
l1 = np.float32([[0,0],[100,0],[100,100],[0,100]])
l2 = np.float32([[0,0],[100,0],[100,100],[0,100]])
tform.estimate(l1,l2)

input_image = io.imread('input.jpg')
output_image = input_image
output_image = warp(input_image, tform, output_shape=(calc_height, calc_width))
io.imsave('output.jpg',output_image)

input.jpg - зеленое изображение 100 X 100. Когда я даю преобразование идентичности, output.jpg должен быть таким же, как input.png, но, кажется, появляется черная граница. Может кто-нибудь помочь мне, как это исправить? Спасибо!

ввод

input

выход

output

1 Ответ

0 голосов
/ 21 мая 2019

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

output_image = деформация (input_image, tform, output_shape = (calc_height, calc_width), режим = 'отражать')

...