2017-12-24 3 views
0

나는이 일을 기능을하고 싶은,하지만 존재하지 않습니다시프트 이미지 [파이썬]

from skimage.transform import shift 

shifted = shift(image, translation=(15.2, 35.7), 
       mode='wrap', preserve_range=True) 

당신이 날은 skimage.transform.AffineTransform를 사용하여 함수를 작성하는 데 도움 수 있을까요? 회전보다 약에도 10-20x 느린 -


from skimage.transform import AffineTransform 

def shift(image, translation): 
    transform = AffineTransform(translation=translation) 
    # How to do it??? 
    shifted = transform(image) # Does not work, documentation for usage present 
           # of this class is not present... 
    return shifted 
그러나 기능 scipy.ndimage.interpolation.shift 그것은 veeeeery 느린, 내가 원하는 것을. numpy.roll도 부분 번역을 지원하지 않으므로 표에서 제외됩니다.


문서는 다소 평균입니다 :이 작업처럼 http://scikit-image.org/docs/stable/api/skimage.transform.html#skimage.transform.AffineTransform

답변

0

이 보인다. 그러나 누구라도 더 간단하고 빠른 방법을 알고 있다면 알려 주시기 바랍니다.

from skimage.transform import AffineTransform, warp 

def shift(image, vector): 
    transform = AffineTransform(translation=vector) 
    shifted = warp(image, transform, mode='wrap', preserve_range=True) 

    shifted = shifted.astype(image.dtype)