2012-06-06 5 views
6

접이식 주름이있는 2D 스케치를 완전한 3D 표현으로 변환하려고하는 작업을하고 있습니다. 빨간 선은 계곡이며 푸른 산/정상은입니다. 변환 된/매핑 된 좌표 {P1 '... P8'}을 계산하고 싶습니다. 나는 이것을 자동으로 할 수있는 좋은 소프트웨어를 찾지 못했지만 팁을 고맙게 생각할 것이다.종이 접기 (컴퓨터 비전)

  • Folding Pattern - 앵글

  • P 폴딩 - 좌표
  • E - 소자
  • 청색 라인 - 절첩 산
  • 레드 라인 - 접힌 밸리
  • surfare 법선

    I MATLAB이 사용하고 있지만 일반 알고리즘 바라는 같이 A1 = A2 = A3 = 90 ° (PI/2 RAD) (접힌 각도) 와 화살표 63,210

Folded 이 문제를 해결하기 위해

가정 점 P0 내가 가장 변화를 설명하는 방법, 그 좌표를 변경되지 ORIGO 소자 E1 고정되어? 불균일 또는 동질 좌표, 극좌표를 사용해야합니까?

예를 들어, 점 P8은 각도에 의존하는 다른 좌표에 따라 달라집니다.

포인트 (노드) 및/또는 노드와 모든 요소를 ​​쌍으로 연결하는 매트릭스에 대해 일종의 인접성 매트릭스를 사용할 수 있다고 가정합니다. 예 : [E1 P0 P4 P5 P1; E2 P1 P5 P6 P2; ...]

모든 좌표에 대한 변환은 변환 + 회전이고 변환은 좌표/요소에 따라 다릅니다. 그러나 여러 요소가 연결되어있어 까다로워집니다 ...

접는 패턴이있는 2D "종이"를 3D 좌표로 깔끔하게 변환하려면 어떻게해야합니까?

+0

종이가 서로 닿지 않도록 보장합니까? 또한 접는 순서는 무엇입니까 (회전은 교환 가능하지 않습니다)? – tskuzzy

답변

1

모든 폴딩 주름을 반복하고 주름의 한면에있는 모든 픽셀의 변형을 계산할 수 있습니다.

변환 색인을 사용하여 접힌 점의 좌표를 계산할 수 있습니다. the wikipedia article describing transformation matrix을보십시오.

먼저 모든 포인트를 번역하여 주름이 축과 정렬되도록 한 다음 주름 방향에 따라 주름의 한면에있는 모든 포인트를 회전시킵니다. 그 다음 그림이 원래 위치로 돌아 오도록 첫 번째 번역을 되돌릴 수 있습니다. 당신이 완전히 그림을 접을 때까지 다음 주름과 함께 과정을 반복하십시오.

matlab을 사용하면 매트릭스 계산이 매우 쉽습니다.

+0

소리 나는 무엇을 염두에두고 있었는지! 저는 로드리게스의 회전식을 사용하고 있습니다. 그러나 접히는 패턴이 더 복잡 해지면 어떤 포인트를 접어서 정렬해야하는지 믿습니다. 다른 모든 것을 접는 것은 엉망이 될 것입니까? 이 사진 좀 봐. 어떻게 생각해? [link] http://i49.tinypic.com/2ewfozq.png) – POHU

+0

eck! 어떤 접는 패턴! 그러한 패턴의 경우 접기가 접히는 것보다 다른 점을 이동시키는 문제가 있습니다. 파란색 선을 분명히 밀면 붉은 선을 따라 몇 점을 끌고 ... 내가 설명했던 것보다 훨씬 더 복잡합니다. –

+0

Ha 예! 나는 이런 종류의 문제가 매우 진보 된 것을 본다. 이런 종류의 패턴에 대해 작동하는 알고리즘을 작성할 수있는 합리적인 환경이 있다고 생각 하나 임의 패턴에 대해서도 그렇습니까? 일에 첫째 날, 운이 좋았던 hehe ... – POHU

1

여러 회전 조인트가있는 로봇을 설명하는 데 사용할 수있는 기법을 사용할 수 있습니다. 귀하의 문제는 forward kinematics 문제로 설명 될 수 있습니다.또 다른 재미있는 독서는 this 일 수 있습니다.

0

선의 한면에있는 각 점에 선형 변환을 적용하기 만하면됩니다.

변형은 그런 다음 제 원점으로 변환을 적용 할 것이며, 그 변환 행렬 축이 원점에 중심 아니므 given by

enter image description here

인 축을 중심으로 회전한다 회전을 한 다음 다시 번역하십시오.

관련 문제