이 이미지 왜곡 효과를 재현하는 방법은 무엇입니까?

Nov 15 2020

이 애니메이션과 같은 이미지 왜곡 효과를 만들려고합니다.이 애니메이션은 배경 위로 이동하는 기형 돋보기와 유사합니다.

어디서부터 시작해야할지 모르겠지만 다음은 관련 게시물입니다.

  • 왜곡 된 포인트 세트를 해당 왜곡되지 않은 포인트 세트로 뒤틀어 이미지 왜곡 보정
  • Captcha 텍스트 모핑 효과

답변

7 AlexTrounev Nov 23 2020 at 02:30

와 함께 원통형 함수를 사용 ImageTransformation[]하여 물에 파도를 표시 할 수 있습니다. 예를 들어

img=

lst = Table[
   ImageTransformation[
    img, {#[[
        1]] (1 + 
         Sin[Pi x/40] BesselJ[1, 
           20 Sin[Pi x/
               40] Sqrt[(#[[1]] - .5)^2 + (#[[2]] - .5)^2]]), #[[
        2]] (1 + 
         Sin[Pi x/40] BesselJ[1, 
           15 Sin[Pi x/
               40] Sqrt[(#[[1]] - .5)^2 + (#[[2]] - .5)^2]])} &,  
    Padding -> "Periodic"], {x, 0, 40, 1/2}]; 

그리고 약간의 방위각 파동으로

lst = Table[
   ImageTransformation[
    img, {#[[
         1]] (1 + 
          Sin[Pi x/40] Cos[4 Pi ArcTan[#[[1]], 1 - #[[2]]]] BesselJ[1,
             20 Sin[
              Pi x/40] Sqrt[(#[[1]] - .5)^2 + (1 - #[[2]])^2]]), #[[
         2]] (1 + 
          Sin[Pi x/40] Sin[4 Pi ArcTan[#[[1]], 1 - #[[2]]]] BesselJ[1,
             20 Sin[
              Pi x/40] Sqrt[(#[[1]] - .5)^2 + (1 - #[[2]])^2]])} (1 + 
        x/20 Sin[Pi x/40]) &, Padding -> "Periodic"], {x, 0, 40, 
    1/2}];

6 Jean-Pierre Nov 20 2020 at 09:36

다음은 슬로우 모션으로 변환의 시작입니다. 오른쪽 위와 왼쪽 아래 사분면은 대칭 적으로 크게 왜곡되고 다른 두 사분면은 기울어집니다.

(아래 gif는 원본 gif를 저장 한 다음 Import181 개 이미지 목록으로 파일을 가져온 다음 Export이 이미지 중 처음 40 개 정도를 옵션을 사용하여 새 gif 로 가져 오는 데 사용 합니다 DiplayDurations->0.6.)

이것이 방법을 파악하는 데 도움이됩니까? 단서 일 가능성이 있지만 그게 무슨 뜻인지 모르겠습니다.

다음 변환은 몇 가지 잠재력을 보여줍니다.

list = Table[
  ImageTransformation[img, Sin[x Pi #] Sin[ Pi Reverse[#]] &], {x, 
   0.3, 0.70, 0.01}]

다음은 gif로 목록입니다.

물론 가능한 변형은 무한합니다.

list = Table[
  ImageTransformation[img, 
   0.70 # + 0.1  Sin[x Pi #] Sin[Pi Reverse[#]] + 0.1 &], {x, 0.3, 
   2.70, 0.01}]