위와 같이 엄청나게 감쌀 수있는 파노라마 이미지에서 "천장 패널"을 생성하는 알고리즘을 작성하려고합니다. 이미지 1 ~ 4는 큐브의 벽에 대해 직선 컷 아웃이지만 천장은 5a에서 5d 부분으로 합성해야한다고 가정하므로 천장이 더 복잡합니다. 누구나 의사 코드의 해결책을 알고 있습니까?
내 생각에 우리는 천장 타일의 좌표를 반복해야한다는 것입니다. 즉,
for y=0 to height
for x=0 to width
colorofsomecoordinateonoriginalimage = some function (poloar coords?)
set pixel(x,y) = colorofsomecoordinateonoriginalimage
next
next
-
답변 # 1
-
답변 # 2
단일 위치에서 사진을 찍어 사진을 찍어 파노라마를 생성 할 수는 없습니다. 글쎄, 당신은 하나의 수평 세트를 할 수는 있지만보기 흉하게 보일 것입니다 (일반적으로 가장자리의 왜곡을 피하기 위해 4 장 이상의 사진을 스티치합니다). 여기에는 y 방향에 더 많은 데이터가 있습니다. 이는 더 많은 사진을 의미하고 일부는 최종 이미지를 생성하는 멋진 투영을 의미합니다.
가까운 파노라마를 보면 햇빛의 영역 경계가 똑 바르지 않다는 것을 알 수 있습니다. 파노라마가 큐브가 아닌 원통에 투사 되었기 때문입니다. 따라서 1/2/3/4가 큐브에 직접 매핑 된 것처럼 보이지는 않습니다.
하단, 8 점을 고정 점에서 찍은 8 장의 사진으로 간주 할 수는 없습니다. 설득력이 필요한 경우 8 장의 사진을 찍어 서로 연결해보십시오. 맨 위 행을위한 것이며 맨 아래 행을 만들기는 쉽지만 스티치 된 영역에서 얼마나보기 흉한 지 볼 수 있습니다.
이제 큐브 맵이 필요한 이유는 옵션의 변화입니다. 저렴한 환경 매핑 효과를 수행하기 위해 큐브 맵만 찾고 있다면 가장 간단한 방법은 원하는 가장자리를 매핑하고 그 사이에 선형 보간하는 임의의 함수를 찾는 것입니다. 완전히 잘못된 투영이지만 의도 한 목표에 적합하게 보이는 그림을 제공해야합니다.
보다 정확한 것을 찾으려면 투영이 투영 된 방식을 알아야 큐브에서 다시 투영하기 전에 투영을 해제 할 수 있습니다.
전혀, 큐브 맵을 생성하기 위해 파노라마를 처리하는 것보다 큐브 맵을 촬영하는 것이 훨씬 더 쉽지만 불가능할 수도 있습니다.
- textures - OPENGL에 서명되지 않은 16 비트 RGB 형식이없는 이유는 무엇입니까?
- C ++를 사용하여 OpenGL에서 도형을 이동하면서 시간에 따라 도형 자동 회전
- java - 나는 검은 질감이
- java - 스카이 박스 텍스처가 올바르게 표시되지 않습니다
- c++ - 스키닝 애니메이션 - 웨이트 메시 파괴
- c++ - clion cmake ld - 라이브러리를 찾을 수 없음 + vulkan 및 opengl 질문
- opengl - pyopengl 텍스처 크기를 pygame 창 크기로 조정하는 방법?
- python - pyopengl - c ++을 대체 할 수 있습니까?
- C ++로 OpenGL에서 3D 다각형 텍스처링
- C ++를 사용하여 OpenGL에서 키보드로 3D 도형 이동
음 ... 나는 대학원에서 컴퓨터 비전 수업을 위해 한 번 그런 일을 기억합니다. 불가능하지는 않지만 많은 작업을 수행해야합니다. 한 가지 방법은 전체 제품 품질을 저하시키는 것입니다. 이것이 가장 쉬운 출발점입니다. 가장자리를 늘려야하는 정도에 따라 이미지 품질이 충분히 저하되면 이미지에 비선형 변형을 적용 할 수 있습니다. 이것은 아마도 실린더의 섹션을도 단위로 자른 다음 평면 맵 (메르카토르 또는 CADRG 등)을 만드는 데 사용 된 오래된 투영 중 하나를 적용하여 근사하는 것이 가장 좋습니다 ...하지만 픽셀을 보간해야합니다 , 최소한 대략적인 픽셀 평균을 구하십시오. 이것이 내가 생각할 수있는 최선의 방법입니다.