대학원 준비

Image and Pixels

steezer 2025. 9. 16. 23:55

Image Processing?
• What do you think of when you hear image processing?
• Image processing is analyzing and manipulating an image through code
• Using math+computer science, we can analyze, enhance and distort images for all kinds of uses.

 

A color image can also be represented as a set of Hue, Saturation, Brightness values
Shift across hue, but not saturation or value

 

Let’s make filters of our own!

 

tint(100)
색상들을 100/255 배

tint(255, 127)
색상 100%, 투명도 127/255 배

tint(0, 200, 255)
RGB 각각 0/255, 200/255, 255/255 배

tint(255, 0, 0, 100)
RGB 각각 255/255, 0, 0 배
알파값 100/255 배

 

픽셀 위치에 따라서
밝기 조절
밝기 threshold

 

픽셀 기반 Photoshop Blending mode 수식
각 픽셀 rgb 값이 0~1 사이로 가정한 수식. Blend 는 임의로 값을 정함

 

Image Flipping

 

Pixel Location

 

Pixel(x, y) 와 좌우 대칭인 Pixel 의 배열에서의 위치는
y*width + ( width – 1 – x)

Pixel (x, y) 의 배열에서의 위치는
y*width + x

Pixel(x, y) 와 상하 대칭인 Pixel 의 배열에서의 위치는
(height-1-y)*width + x

 

Pixel group processing

 

Pixel group processing
• 기존 예제들은 원본 픽셀과 결과 픽셀의 one-to-one 관계였음
• 각 픽셀의 brightness 조절 등…
• 원본의 2개 픽셀에서 새로운 픽셀을 만들어보자
• 픽셀 위치: x + ywidth
• 왼쪽 픽셀 위치: (x-1) + ywidth
• float diff = 픽셀 밝기 – 왼쪽 픽셀 밝기
• 현재 픽셀 rgb 값 = (diff, diff, diff)

Simple horizontal edge detection algorithm

 

Spatial convolution
• 주변 픽셀의 정보를 동시에 사용
• 바로 이웃은 총 8개의 픽셀
• 3 x 3 convolution
• 입력 픽셀과 주변 픽셀의 Weighted average


한국어

이미지 처리(Image Processing)

  • 이미지 처리란? 코드로 이미지를 분석·조작하는 일입니다. 수학과 컴퓨터과학을 활용해 이미지를 분석·향상·왜곡 등 다양한 용도로 다룹니다.

색 표현과 필터

  • HSB 표현: 컬러 이미지는 색상(Hue)·채도(Saturation)·명도(Brightness) 값의 집합으로도 표현할 수 있습니다.
    • 예: Hue만 이동(Shift)하고 채도·명도는 고정.
  • 간단 필터 만들기(tint 예시)
    • tint(100): 색상들을 100/255 배로 곱함.
    • tint(255, 127): 색상 100%, 투명도 127/255 배.
    • tint(0, 200, 255): R=0/255, G=200/255, B=255/255 배.
    • tint(255, 0, 0, 100): R=255/255, G=0, B=0 배, 알파 100/255 배.

픽셀 기반 조정

  • 밝기 조절/임계값(threshold): 픽셀 위치에 따라 밝기를 조절하거나 임계값을 이용해 이진화/강조.
  • 블렌딩 모드 수식(포토샵 유사): 각 픽셀의 RGB를 0~1로 가정한 식을 사용(Blend 비율은 임의로 설정).

이미지 뒤집기(Image Flipping)와 인덱싱

  • 픽셀 인덱스(1차원 배열): index = y*width + x
  • 좌우 대칭 픽셀 인덱스: index_lr = y*width + (width - 1 - x)
  • 상하 대칭 픽셀 인덱스: index_tb = (height - 1 - y)*width + x

픽셀 그룹 처리(Pixel group processing)

  • 기존 예제는 원본 픽셀 ↔ 결과 픽셀의 1:1 관계(예: 각 픽셀 밝기 조절).
  • 변형: 원본의 2개 픽셀새 픽셀 만들기
    • 현재 픽셀 위치: x + y*width
    • 왼쪽 픽셀 위치: (x-1) + y*width
    • diff = (현재 픽셀 밝기) - (왼쪽 픽셀 밝기)
    • 현재 픽셀의 RGB를 (diff, diff, diff)로 설정 → 수평 가장자리(에지)가 강조됨.
  • 간단한 수평 에지 검출: 위의 diff 방식이 대표적 사례.

공간 컨볼루션(Spatial convolution)

  • 주변 이웃을 동시에 사용(바로 이웃 8픽셀).
  • 3×3 컨볼루션: 입력 픽셀과 주변 픽셀의 가중 평균(weighted average)을 계산해 블러·샤픈 등 효과를 구현.