본문 바로가기

AI & Data/컴퓨터 비전(CV)

[영상처리] Ch1. Introduction.

Digital Image Processing, 4Th Edition: Rafael C. Gonzalez, Richard E. Woods
본 글은 위 교재를 주교재로 한 학교 '영상처리(Image Processing)' 수업을 들으며 공부한 내용을 정리한 글입니다.

해당 글은 개인 공부 및 교육 목적으로 작성하였으며, 일부 교재에 첨부된 사진(또는 교재에서 강의노트로 첨부된 사진)들을 포함하고 있습니다.
교재 출처 사진을 최소화하고자 블로그에는 핵심 사진을 제외하곤 옮기지 않은 사진들도 있습니다. 따라서 고의로 누락한 사진들이 존재하며, 해당 사진들을 언급하는 내용이 있을 수 있습니다. 누락한 사진들은 직접 교재를 참고해 주세요.

혹시 문제가 있다면, 댓글 남겨주시면 빠른 시일 내에 확인 후 적절한 조치를 취하겠습니다.

What is an ‘image’?

  • Image: 빛을 통해서 사람의 눈에 시각적인 자극(감각)을 만들어주는 것들.
  • 2차원의 형태임. 우리의 망막은 2차원이니까. 그림, 사진 등… 그러나 우리는 사진의 관점에서 image를 다룰 것임.
  • 𝑓(𝑥,𝑦) → 좌표 (x, y)가 들어가면, 픽셀 값(=밝기)가 출력으로 나오는 함수. (색상은 일단 여기선 생략)

What is ‘Digital Image’?

이미지는 저장될 때 ‘디지털 폼’으로 저장됨.(aka. 바이너리 폼) → 즉 인코딩이 필요함.

디지털화하는 흔한 방식들에는 아래 두 가지가 있음.

  • Raster(bitmap으로 만드는 방식을 말함) image
  • Vector image

Raster Image

  • 요즘은 대부분 Raster Image로 이미지를 저장함.
  • Raster image: 픽셀(Pixel, picture element의 약어)들의 유한 집합.
  • 픽셀은 대부분 정사각형이지만 꼭 정사각형일 필요는 없음.
  • jpg jpeg png gif 등등 많은 포맷(확장자)를 가짐.

Vector Image

  • Raster image가 보편화되기 전에는(ex. 1960 70년대) crt라는 기계같은 걸로 vector graphics line을 직접 그렸음.
  • 요즘에는 잘 안쓴다고함. 옛날에 잠수함 속에 레이더 그릴 때 쓰던 기술.
  • 글자 폰트나 어도비 일러스트레이터에는 이게 쓰임. 선을 긋고 거기를 색칠하라는 식으로 구현되기 때문.
  • SVG 등의 포맷을 가짐.

Advantage & Disadvantage of Digital Image

Raster의 장점

  • easy reproduction(재현하기가 쉽다. 한 픽셀이 위아래 다른 픽셀과 연관이 없음.)
  • 세밀한 표현이 가능함. → 이미지가 더 자연스러움.
  • 일부 영역에 쉽게 접근 가능함(픽셀 단위니까).
  • 전체적인 효과를 주기에도 편함.

Raster의 단점

  • 해상도에 의존하여 데이터가 많이 커짐.
  • 해상도에 한계가 있어서 결국 끝까지 확대하면 깨짐.
  • 일부분을 수정하기가 빡셈. (벡터는 그냥 슥슥 다시 그리면 됨)

추가정리) Raster vs Vector GPT 답변

더보기

디지털 이미지는 Raster(래스터)  Vector(벡터) 두 가지 방식으로 저장되며, 각각의 특성과 용도가 다르다.


1. Raster (래스터) 이미지 해상도 의존적 → 확대 시 픽셀이 깨지며, 품질 저하 발생✅ 파일 크기 큼 → 높은 해상도일수록 용량이 커짐💡 사용 사례: 사진, 디지털 페인팅, 웹 디자인, 텍스처 및 배경 이미지


2. Vector (벡터) 이미지 해상도 독립적 → 어떤 크기로 확대해도 품질 유지 (깨짐 없음)✅ 파일 크기 작음 → 복잡한 이미지가 아닐 경우 용량이 효율적💡 사용 사례: 브랜드 로고, 아이콘, 폰트, 도면, 인포그래픽, 애니메이션 요소


3. Raster vs. Vector 비교 표구분 Raster (래스터) Vector (벡터)

구성 요소 픽셀(pixel) 수학적 도형과 좌표
확대 시 품질 깨짐(손실 발생) 유지(선명함)
세부 표현 사진, 복잡한 색상 가능 단순한 색상과 도형에 강함
파일 크기 해상도 높을수록 큼 상대적으로 작음
편집 방식 픽셀 수정(포토샵 등) 벡터 조정(일러스트레이터 등)
대표 포맷 JPG, PNG, GIF, BMP SVG, AI, EPS, PDF
사용 용도 사진, 웹 이미지, 디지털 아트 로고, 아이콘, 인쇄물, 폰트

4. 결론: 언제 어떤 방식을 써야 할까?

  • 사진이나 디테일한 이미지가 필요할 때  Raster (JPG, PNG 등)
  • 확대해도 선명해야 하거나, 간단한 그래픽 작업 시  Vector (SVG, AI 등)

💡 Tip: 로고, 아이콘, 폰트 같은 중요한 그래픽은 벡터(Vector)로 제작하고, 최종적으로 웹이나 출력물에서 사용하려면 래스터(Raster)로 변환하는 것이 일반적이다.복잡한 그래픽에 Vector을 쓰면 어떻게 돼?벡터(Vector)로 복잡한 그래픽을 만들면 어떻게 될까?


1. 파일 크기가 커짐➡ 결과적으로 파일 크기가 매우 커지고, 처리 속도가 느려질 수 있음

  • 단순한 로고 (예: Nike 스우시) → 벡터로 저장해도 파일 크기 작음 ✅
  • 복잡한 그림 (예: 인물 초상화, 풍경화) → 곡선 수식이 너무 많아져 파일이 커짐 ❌

2. 렌더링 속도 저하 그래픽 소프트웨어나 웹 브라우저에서 렌더링 속도가 느려질 수 있음

  • 웹사이트에서 벡터 기반의 단순한 아이콘 → 빠르게 로딩됨 ✅
  • 벡터로 만든 초고해상도 일러스트 → 웹에서 로딩이 느리고, 버벅거릴 가능성 큼 ❌

3. 자연스러운 색상 표현 어려움 사진처럼 복잡한 색상 변화(그림자, 빛 반사, 피부 질감 등)를 표현하기 어려움

  • 단순한 플랫 디자인, 아이콘 → 벡터로 제작하면 깔끔하고 선명 ✅
  • 피부 톤이 자연스러운 인물화, 실사 느낌의 그림 → 벡터로 제작 시 인위적이고 어색할 수 있음 ❌

4. 특정 작업에 불리함 회화적인 표현, 사진 같은 디테일이 필요한 경우에는 래스터(Raster) 이미지가 더 적합

  • 인쇄용 로고, 간단한 캐릭터, 기술 도면 → 벡터 활용 적합 ✅
  • 디지털 페인팅, 세밀한 그림자 표현이 필요한 이미지 → 래스터 사용이 더 나음 ❌

🚀 결론: 벡터는 언제 쓰고, 언제 쓰지 말아야 할까?

  • 로고, 아이콘, 폰트, 기술 도면, 단순한 일러스트
  • 크기를 자유롭게 조절해야 하는 디자인 (예: 명함부터 빌보드까지)

 벡터로 만들기 어려운 경우

  • 사진, 디지털 페인팅, 복잡한 질감과 색상이 필요한 그래픽
  • 초고해상도 복잡한 일러스트 (렌더링 느려지고, 파일 크기 커짐)

💡 Tip: 복잡한 그래픽이 필요할 땐 래스터(Raster)와 벡터(Vector)를 조합해서 사용하는 것이 가장 효율적이다! 🎨🔥

  •  벡터를 쓰기 좋은 경우
  • 💡 예제:
  • 벡터는 도형 단위로 편집하기 편리하지만, 페인팅(붓 터치) 같은 자연스러운 질감 표현에는 부적합하다.
  • 💡 예제:
  • 벡터 그래픽은 기본적으로 단색(Color Fill)이나 그라데이션(Gradient)으로 색을 표현한다.
  • 💡 예제:
  • 복잡한 벡터 그래픽은 수많은 도형과 곡선을 실시간으로 계산해서 출력해야 하기 때문에,
  • 💡 예제:
  • 벡터 그래픽은 점과 곡선, 색상 정보를 수식으로 저장하는데, 복잡한 그림(예: 세밀한 그림, 사진 수준의 아트워크)을 벡터로 표현하면 엄청난 양의 좌표와 곡선 데이터가 필요하다.
  • 벡터(Vector) 그래픽은 수학적 좌표와 도형으로 구성되어 있어서 확대해도 깨지지 않는다는 장점이 있다. 하지만 복잡한 그래픽을 벡터로 만들면 다음과 같은 문제점이 발생할 수 있다.
  • ChatGPT의 말:
  • 나의 말:
  •  대표 포맷  SVG, AI, EPS, PDF
  •  단순한 색상과 선명한 그래픽 표현 강점 → 로고, 아이콘, 폰트, 일러스트 등에 적합
  •  수학적 좌표와 도형 기반 → 점, 선, 곡선, 다각형 등의 수식으로 구성
  •  대표 포맷  JPG, PNG, BMP, GIF, TIFF
  •  복잡한 색상과 디테일 표현 강점 → 그라데이션, 사진, 그림 등에 적합
  •  픽셀(pixel) 기반 → 이미지는 작은 점(픽셀)들의 집합으로 구성됨
  • Raster vs. Vector: 차이점 정리

표현해야 할 ‘정보’가 많아지면, Vector은 용량이 커진다.

https://graphicdesign.stackexchange.com/a/138803

두 그래프처럼(x축에 주목하라!)

  • 일반적으로 픽셀 개수가 많아지면(ex. 10 x 10 → 1000 x 1000) Raster(=Bitmap) 방식은 용량이 비례하여 증가하지만, Vector은 이론적으로는 다른 요인이 같다면 용량은 동일함.
  • 반대로, 표현해야 할 ‘정보’가 많아지면, Vector은 수행해야 할 수학 연산의 양이 증가하므로, 용량이 비례하여 증가함. 그에 비해 Bitmap은 이론적으로는 다른 요인이 같다면 용량은 동일함.

Brief History of Digital Image

  • 1929 → 사진을 코드화해서 저장하고 전송함
  • 1960 → 달 사진을 찍어서 지구로 보내는데, 사진 퀄리티를 높이려고 컴퓨터가 동원됨.(영상 처리의 시작)
  • 1970 → 의학에 응용됨(CT 등)

Invisible Light Imaging

  • 이제 빛 이미지(Light Imaging)들 또한 볼 수 있게(Invisible) 됨.

ex. 감마레이 사진(image), 엑스레이 사진, 자외선 사진, 현미경 사진, 적외선 사진, 마이크로파 사진, 우주 사진 등등

Sound & Ultrasonic Wave Imaging

  • 초음파 사진 또한 마찬가지. 배 안의 태아 사진까지도 볼 수 있게됨.

What is Digital Image Processing

Digital Image Processing:

  • 이미지를 사람이 봤을 때 이해하기 쉬운 형태로 처리하는 것.
  • 이미지를 기계가 저장하고 전송하고 표현하기 쉬운 형태로 만드는 것.

우리는 1번의 주제에 집중해서 공부할 것임.

Fundamental Levels in DIP

Low level

  • 이미지 → 이미지 처리

ex. 노이즈 제거, 이미지 샤프닝

Mid level

  • 이미지 → 속성(attributes)
  • 여기서부터는 보통 컴퓨터 비전의 영역.

ex. 객체 인식, 세그멘테이션

High level

  • 속성 또는 이미지 → 사람이 이해할 수 있는 정보(Understanding)

ex. Scene understanding, autonomous navigation(자율 주행)

Key Stages in DIP

디지털 영상처리(DIP)에서는 여러 단계가 존재하지만, 우리는 핵심적인 4단계까지만 다룰 것이다. 특히 중간에 퓨리에 변환이 등장하지만, 우리는 수학자가 아닌 엔지니어이므로 개념만 이해하면 충분하다.

1. Image Acquisition(이미지 획득)

  • 디지털 이미지의 입력 과정.
  • 카메라, 센서 등을 통해 이미지를 얻거나 특정 조건에서 촬영된 이미지를 처리.
  • 어떤 방식으로 이미지를 얻느냐에 따라 후처리 방법이 달라질 수 있음.

2. Image Enhancement(이미지 개선)

  • 이미지를 사람이 더 잘 볼 수 있도록 품질을 향상시키는 과정.
  • 대비 조정, 필터링, 노이즈 제거 등을 통해 가시성을 높임.
  • 예: 어두운 사진의 밝기 조정, 흐린 이미지 선명하게 만들기.

3. Image Restoration(이미지 복원)

  • 손상된 이미지에서 원래 정보를 복구하는 과정.
  • 블러(흐림) 제거, 노이즈 제거 등 수학적 모델을 활용하여 원본에 가깝게 복원.
  • 예: 오래된 사진을 복원하거나, 저화질 영상을 선명하게 만들기. 

4. Morphological Processing(모폴로지 처리)

  • 이미지의 형태(Shape)와 구조를 다듬는 과정.
  • 침식(Erosion), 팽창(Dilation) 등의 기법을 활용하여 객체의 경계를 다듬고 노이즈를 제거.
  • 주로 이진화 이미지(흑백)에서 사용되며, 객체의 모양을 조정하는 데 유용함.
  • 예: 글씨의 경계를 뚜렷하게 만들거나, 작은 점 노이즈를 제거.

5. Segmentation(세그멘테이션)

  • 이미지에서 관심 있는 객체(Object)를 분리하는 과정.
  • 예: 얼굴 인식에서 얼굴 부분만 따로 추출, 의료 영상에서 특정 장기만 분리.

6. Object Recognition(객체 인식)

  • 분리된 객체가 무엇인지 판별하는 과정.
  • 예: 이 손글씨가 "A"인지 "B"인지, 자동차 번호판 문자가 ‘가1234’인지 ‘나5234’인지 아님 뭔지 판별

7. Representation & Description(표현 및 기술)

  • 인식된 객체의 형태적 특징을 정량적으로 표현하여 의미를 부여하는 과정.
  • 테두리가 이런 모양이고, 그래서 이게 무슨 의미를 가지고 있는 건데? 좀 더 high level 정보로 만들어주는 과정.
  • 예: 사각형인지 원형인지 판별, 글씨의 필기체 여부 분석.

Extra Issues

이미지 압축은 시간이 되면 배울 거임.

색깔이 들어가면 어케할 지는 3/4 수업 지점에서 말할 거임.