최고의 랜덤 도트 스테레오 그램 (RDS)를 찾아.

마지막 기사에서 파이썬을 사용하여 원래의 랜덤 도트 스테레오 그램을 만드는 데 도전했습니다.
  • 파이썬으로 오리지널 랜덤 도트 스테레오그램(RDS) 만들기

  • 무사히 입체시를 할 수는 있었지만, 단순히 원표나 텍스트를 입체시한 것만으로 만족해 버렸다. 이번에는 좀 더 멋진 것을 만든다.

    색상 변경



    전회는 랜덤 도트 스테레오그램을 그레이 스케일로 표시시키고 있었다. 이것이 왠지 옛 텔레비전의 모래 폭풍처럼 무섭다.
    Matplotlib 에는 그레이스케일 이외에도 여러가지 컬러맵이 있으므로 변경해 보았다.
    plt.imshow(stereogram, cmap='spring')
    


    사다코감이 없어져 상당히 POP가 되었다. 쌀.

    깊이



    전회는 입체 패턴의 깊이 맵을 2치로 작성하고 있었다. 이것은 여러 가지 의미로 깊이가 없다.
    깊이 맵을 연속적인 수치로 함으로써 입체가 떠오르게 하는 정도를 조정할 수 있다.

    겨자 아래와 같은 패턴을 준비했다.
    def make_depthmap(shape=(400, 600)):
        depthmap = np.zeros(shape, dtype=np.float)
        cv2.circle(depthmap, (200, 100), 50, (255 ,255, 255), -1)
        cv2.circle(depthmap, (400, 100), 50, (200 ,200, 200), -1)
        cv2.circle(depthmap, (300, 200), 50, (155 ,155, 155), -1)
        cv2.circle(depthmap, (200, 300), 50, (100 ,100, 100), -1)
        cv2.circle(depthmap, (400, 300), 50, (55 ,55, 55), -1)
        return depthmap
    



    왼쪽 상단에서 Z 순서로 어두워지는 패턴. 이제 RDS를 작성해 보자.



    대단해. 깊이 맵의 어두움에 따라 튀어나오는 상태가 바뀌었다.
    이런 패턴도 해봤다.
    def make_rectangle_depthmap(shape=(400, 600)):
        depthmap = np.zeros(shape, dtype=np.float)
        for i in range(16):
            c = 255 - i * 16
            cv2.rectangle(depthmap, (100+i*25, 100), (125+i*25, 300), (c, c, c), -1)
        return depthmap
    



    결과는 여기



    계단처럼 보인다. 쌀.



    다음 번에는 사진(2차원 이미지)에서 깊이 맵을 작성하여 보통 사진을 입체시할 수 있도록 하고 싶다.
    무작위 점 스테레오 글래머가되고 싶다.

    추가



    속편을 썼습니다.
  • 기계 학습을 통한 깊이 추정으로 2D 사진에서 원래의 랜덤 도트 스테레오 그램 (RDS) 만들기
  • 좋은 웹페이지 즐겨찾기