Notice

중요한 이미지의 손실을 최대한 방지하면서 사진을 축소합니다.

  • Remove Width(px) : 삭제할 세로 줄의 수
  • File : 변경할 사진 선택. 입력란에 이미지 Url 입력도 가능(예:https://i.pinimg.com/564x/94/7a/5c/ABCDEFGHIJKLMNOPQRSTUVWXYZ.jpg)
  • Try it : 변환시작버튼

ready

Description

이 기능은 https://github.com/mfbx9da4/seam-carving-js의 알고리즘을 사용합니다.

Seam carving은 디지털 이미지의 크기를 조절하는 새로운 방법으로, 이미지의 너비나 높이를 변경할 때 이미지의 중요한 구성 요소를 유지하면서 이미지의 비율을 조정하는 기술입니다. 이 기술은 2007년에 Shai Avidan과 Ariel Shamir에 의해 처음 소개되었습니다.

일반적으로 이미지의 크기를 변경할 때, 이미지를 단순히 확대 또는 축소하는 경우 이미지가 왜곡되거나 부분적으로 잘리는 문제가 발생할 수 있습니다. 그러나 Seam carving은 이미지의 구성 요소 중 가장 중요한 부분을 포함하는 줄(Seam)을 찾아내고, 해당 줄을 삭제하거나 중복하여 삽입하여 이미지의 크기를 조절합니다. 이렇게 하면 이미지에 크기 조정이 적용되더라도 이미지의 중요한 정보와 특징이 유지되므로 이미지 왜곡이 줄어들게 됩니다.

Seam carving의 작동 방식은 다음과 같습니다:

  1. 에너지 맵 계산: 먼저 이미지의 모든 픽셀에 대해 에너지 맵을 계산합니다. 에너지 맵은 각 픽셀의 중요도를 나타내며, 이미지에서 각 픽셀의 변화율을 기준으로 계산됩니다. 에너지 맵은 이미지의 경계, 색상 변화, 텍스처 등과 같이 중요한 구성 요소를 나타내는데 사용됩니다.
  2. 최소 에너지 Seam 찾기: 에너지 맵을 기반으로 이미지에서 최소 에너지 Seam을 찾습니다. 최소 에너지 Seam은 이미지를 수직 또는 수평 방향으로 연결하는 최소 에너지 경로를 의미합니다. 최소 에너지 Seam은 이미지에서 가장 중요한 구성 요소를 포함하는 경로를 나타냅니다.
  3. Seam 제거 또는 삽입: 찾아낸 최소 에너지 Seam을 이미지에서 제거하거나 중복하여 삽입하여 이미지의 크기를 조절합니다. 이미지를 축소하는 경우, 최소 에너지 Seam을 제거하여 이미지의 크기를 줄이고, 이미지를 확대하는 경우에는 최소 에너지 Seam을 중복하여 삽입하여 이미지의 크기를 늘립니다.

Seam carving은 이미지의 중요한 정보를 보존하면서 이미지 크기를 조정하는 강력한 기술로, 사진의 비율을 유지하면서 크기를 조정하거나, 이미지의 특정 부분을 확대 또는 축소하는데 사용됩니다. 예를 들어, 풍경 사진에서는 주요 풍경을 보존하면서 사진의 크기를 조절할 수 있어서 좋은 결과를 얻을 수 있습니다.