티스토리 뷰
Image Processing
이미지 처리
[ Bitmap ]
: 한 픽셀에 색깔에 대한 binary code가 할당되는 형태.
: 비트맵의 경우 사이즈가 같으면 용량이 같음. (압축이 되지 않은 형태인 경우)
· 이미지 종류
- Line Art : 단색 이미지. 이진화를 통해 흑백으로 구분된 이미지.
- GreyScale : 회색조 이미지. 이미지를 그레이 스케일로 변환하여, 각 픽셀에 대해 0~255의 값으로 표현.
- Color : 이미지를 RGB, CMYK, HSV 등의 형태로 표현.
· 이미지 포맷
- GIF : 무손실, 256색 표현, 투명 배경 지원, 애니메이션 이미지 표현 가능
- JPEG : 가변 품질(손실 가능), 매우 많은 색상 표현
- PNG : 무손실, 다양한 색상 수, W3C 표준 색상 포맷
[ Vector ]
: 점, 선, 곡선, 면 등의 기하학적 객체를 이용하여 이미지를 나타내는 방법.
: 픽셀화 되지 않아 확대하거나 축소해도 이미지를 보존할 수 있음.
: 복잡도에 따라 용량이 결정됨.
: 사진과 같은 복잡한 이미지를 표현하기에는 부적합.
[ Physic of Imaging ]
Light and the Electromagnetic Spectrum
: 빛은 전자기파의 일종.
: 인간이 감지하는 전자기파는 가시광선으로, 붉은색으로 갈 수록 파장이 길고, 푸른 색으로 갈 수록 파장이 짧음.
Camera Obscura
: 이미지를 형성하는 과정을 이해하기 위해서 고안된 도구.
: 뒤집힌 상을 원래대로 바로잡기 위해 렌즈를 사용.
: 거리가 멀수록 상의 크기는 작아지지만 뚜렷하게 맺히고, 거리가 가까울수록 상의 크기가 커지지만 옅게 맺힌다.
Brightness Adaptation and Discrimination
· Mach band effect
: 경계 면에서 빛이 더 진하거나 밝아보이는 현상.
: 실제로 컴퓨터에서 색상을 구현할 때 이러한 부분도 고려해서 구현해야 한다.
· Simultaneous Contrast
: 동시 대비.
: 주변 색에 따라 인식되는 색상의 밝기와 채도가 변하는 현상.
· Optical Illusion
: 착시 현상.
: 그래픽 알고리즘을 어렵게 만드는 대표적인 이유.
Charge-Coupled Device (CCD) Camera
: 1969년에 Willard Boyle과 George E. Smith에 의해 개발되었다.
: 각 픽셀마다 RGB 중 하나를 인식하도록 만든 Bayer Mask를 사용한다.
Digital Image Acquistion
: 아날로그 신호인 빛을 전기 신호로 바꾸는 프로세스.
: CCD Camera의 Bayer Mask를 이용하여 전기 신호로 바꿀 수 있다.
[ Image Processing ]
: Input과 Output이 모두 Image인 경우 그 중간 과정을 Image Processing이라고 한다.
※ Image → Knowledge인 경우 Computer Vision
※ Knowledge → Image인 경우 Computer Graphics
· Intensity Transformation
: 밝기 값을 변환하여 전체 이미지의 명암 대비를 개선하는 기술.
: 이미지 선명도 개선, 밝기 조정, 색상 강조, 노이즈 제거 등에 사용.
: s = T(r) 수식으로 나타낼 수 있으며, s는 출력값, r은 입력값, T는 변환 함수를 뜻한다.
- Image Negatives
: 이미지를 구성하는 모든 픽셀의 밝기 값을 반전시켜서 새로운 이미지를 생성하는 방법.
: s = L-1-r의 수식을 따르며, r은 입력값(원본 이미지의 값), L은 밝기의 최대값이다.
- Log Transformation
: 이미지의 전체적인 밝기를 조절하기 위해 사용되는 기술.
: s = c * log(1 + r)의 수식을 따르며, r은 입력값, s는 결과값, c는 상수값이며 이미지에 맞게 조정된다.
: 밝은 부분과 어두운 부분 모두에 대해 세부 정보를 잘 볼 수 있도록 조정해준다.
- Gamma Transformation
: 이미지의 감마값을 조정하는데 사용된다.
: s = c * (r + ε) ^ γ의 수식을 따른다.
1) r은 입력값, s는 출력값이며, 0~1 범위로 정규화된다. → 입력값의 범위가 다른 경우에도 출력값의 범위를 유지하기 위함.
2) γ는 감마값으로 보통 1보다 작은 값을 사용한다.
3) c는 정규화 상수이며, s의 최댓값이 1이 되도록 조정하는데 사용된다.
4) ε은 아주 작은 양수 값으로, 0으로 나누는 것을 방지하며 감마값의 선택과 같은 후속 처리에 유용하게 사용된다.
- Gamma Correction
: Gamma Transformation이 이미지 자체를 변환하는 반면, Gamma Correction은 출력 이미지를 만들 때 사용.
: s = r ^ (1 / γ)의 수식을 따른다.
- Piecewise Linear Transformation
: 이미지의 특정 구간에서 선형 변환을 수행하는 기술이며, 이미지의 명암 대비를 개선하는 등의 기능을 가진다.
1) Contrast Stretching : 명암 대비를 개선하는 기술.
2) Intensity level slicing : 특정 Intensity 범위에 있는 픽셀들을 강조하거나 제거하는 기술.
3) Bit-Plane Slicing : 각 픽셀이 0~255까지의 8비트 밝기를 가짐을 이용해 8개의 이미지로 분리하여 처리하는 기술.
→ 이미지 분석이나 압축, 노이즈 제거 등에 사용됨.
· Histogram Processing
: 이미지의 전체적인 밝기와 명암 대비를 개선하기 위한 기술.
: 이미지의 픽셀 값 분포를 히스토그램으로 나타내 히스토그램 분포를 조정해 개선.
: 밝기의 최소, 최댓값을 조정하여 이미지의 명암 대비를 결정한다.
: s = (r - a) * (255 / (b - a))의 수식을 따르며, r은 입력값, s는 출력값, a는 최소값, b는 최댓값이다.
- Histogram Equalization
: 이미지의 전체 픽셀 분포를 고르게 만들어주는 기술.
: 어두운 부분과 밝은 부분을 모두 골고루 퍼뜨려 이미지의 명암 대비를 개선.
· Image Operation
- Arithmetic Operation
: 이미지에 관여하는 산술 연산이며, 덧셈, 뺄셈, 곱셈, 나눗셈으로 나타낼 수 있다.
: 곱셈과 나눗셈의 경우 행렬곱, 행렬 나눗셈이 아닌 각 셀에 대해 진행하는 Pairwise한 연산을 나타낸다.
- Geometric Transformation
: 이미지의 좌표의 변환을 줘 이미지를 변경하는 기술.
1) Translation
: 모양을 유지하고 위치만 변경하는 방법으로, 대응점이 1개 필요하다.
2) Scaling
: 모양을 확대·축소하는 방법으로, 비율이 유지된다면 대응점 1개, 그렇지 않다면 2개가 필요하다.
3) Rotation
: 모양을 회전하는 연산으로, 대응점이 2개 필요하다.
4) Shear
: 모양을 기울이는 연산이며, 대응점이 필요하지 않다.
5) Rigid
: Translation + Rotation을 수행하는 연산으로, 대응점이 2개 필요하다.
6) Affine
: Translation, Rotation, Shear, Scaling 등의 다양한 연산을 수행하는 연산으로, 대응점이 3개 필요하다.
: Homogeneous Coordinates를 이용한 연산 행렬 계산으로 Affine 연산 행렬을 구할 수 있다.
→ 변환 행렬을 미리 모두 계산하고 이미지에 적용하는 것이 시간적으로 이득이며, 이미지 보존도 가능함.
( 하지만 실시간 변화가 필요한 경우 미리 변환하고 적용하는 것이 불가능하므로 그때그때 연산해야 하는 이슈가 있다. )
- Interpolation
: 불완전하거나 부족한 데이터를 추정하기 위한 방법으로, 손실된 픽셀에 주로 사용한다.
1) Nearest Neighbor
: 가장 가까운 픽셀의 색깔을 가져와 선택하는 방법.
2) Bilinear Interpolation
: 4개의 인접한 픽셀을 사용하여 보간하는 방법.
: 거리를 고려하여 구현할 수 있다.
: 각 점 전후를 고려하지 않고 점만 고려하기에 경계가 생기는 문제가 있다.
> f(R₁) = ((x₂ - x) / (x₂ - x₁)) * f(Q₁₁) + ((x - x₁) / (x₂ - x₁)) * f(Q₂₁)
> f(R₂) = ((x₂ - x) / (x₂ - x₁)) * f(Q₁₂) + ((x - x₁) / (x₂ - x₁)) * f(Q₂₂)
> f(P) = ((y₂ - y) / (y₂ - y₁)) * f(R₁) + ((y - y₁) / (y₂ - y₁)) * f(R₂)
이때 f는 픽셀의 색상, 밝기값을 함수식을 통해 색상값을 0과 1사이의 값으로 나타내는 함수이다.
3) Bicubic Interpolation
: 차수를 늘려 3차 곡선을 만들어 전후 관계를 고려해 더 자연스럽게 보간하는 방법.
: 4개의 점을 이용한 3차식을 구하여 해당 점의 색상값을 구한다.
: 3개의 Curve Segment가 생성되는데, 이때 가운데의 Segment만 이용하게 된다.
: 연산량이 많아 Real-Time에는 사용하지 않는다.
'컴퓨터 공학 이론 > 멀티미디어 컴퓨팅' 카테고리의 다른 글
[멀티미디어 컴퓨팅] Video Compression (0) | 2023.06.04 |
---|---|
[멀티미디어 컴퓨팅] Image Compression (0) | 2023.06.04 |
[멀티미디어 컴퓨팅] Image Processing (2) (0) | 2023.06.04 |
[멀티미디어 컴퓨팅] Sound (0) | 2023.04.16 |
[멀티미디어 컴퓨팅] Deep Neural Network (1) | 2023.04.16 |