본문 바로가기
728x90

Quality control (Univ. Study)/Digital Image Processing27

Digital Image Processing - HDR / Response Curve HDR이전 시간에 아래 그림과 같이 부분마다 광량의 차이가 많이 나서 역광과 같은 현상이 발생하는 이미지를 High Dynamic Range 이미지로 변환하는 과정에 대해서 살펴보았다. 그러나 여기서 멈추면 사용자는 결국 보정된 이미지를 확인할 수 없다. HDR이미지를 다시 최대 밝기가 255인 LDR로 수정하여야 사용자들이 보정된 이미지를 확인할 수 있는 것이다.HDR에서 LDR로 변환하여 보정된 이미지를 만들어내는 알고리즘을 살펴보자.우선 위와 같이 5가지 셔터스피드로 촬영을 해서 노출도를 조정하여 각기 다른 밝기로 촬영한 이미지에 대해서 1,2,3 point를 가정하자.이미지의 모든 pixel value Z는 첫 줄 같이 exposure가 촬영기기의 특성인 Response Curve Function.. 2024. 6. 6.
Digital Image Processing - Camera Calibration / HDR Image Sensing Pipeline카메라가 받아오는 광자를 digital 신호로 바꾸고 해당 신호를 처리해서 사람이 보기 좋은 상태로 만드는 전 과정이 Image processing이라고 할 수 있다. 아래는 해당 step들에 적용될 수 있는 연산들이다. 해상도가 무한이고, 확대도 무한이고, 잡음이 없고 blur도 없고 모든 것이 이상적인 카메라가 있다면 문제가 없겠지만 현실서는 불가능한 일이기에 Computational camera and photography를 필요로 한다.Camera CalibrationCalibration은 한글로 '보정'이라는 의미가 있다. 크게 Geometric calibration과 photometric calibration으로 나눠서 볼 수 있다.Geometric ca.. 2024. 6. 3.
Digital Image Processing - Image Transform Image Transform카메라는 3D인 세상을 2D로 표현하는 차원 축소장치이다.이러한 이미지 차원 변환을 위해 동차 좌표계와 projection matrix에 대해서 알아보자.Homogeneous coordinates동차 좌표계는 각 점을 표현할 때 Cartesian coordinates의 (x, y) 또는 (x, y, z)에 추가적인 차원을 하나 더 더해준 좌표계이다. 동차 좌표계를 이용하면 3차원 공간에서의 투영과 같은 변환을 매트릭스 연산으로 간단히 표현할 수 있다. 예를 들어, 3D 공간의 점을 2D 평면에 투영하는 것과 같은 작업이 매우 효율적으로 이루어질 수 있다.이동, 회전, 스케일링(RTS) 등의 변환을 하나의 매트릭스로 통합해 표현할 수 있다. 이는 변환 과정을 간소화하고, 연산을.. 2024. 5. 29.
Digital Image Processing - SIFT SIFTSIFT는 Scale Invariant Feature Transform의 줄임말이고 SIFT알고리즘의 마지막 부분 구조가 체같이 생겨서 "체로 거르다"라는 뜻을 가진 sift라는 동사도 염두해두고 지은 센스있는 이름이다.David G. Lowe가 1999년 ICCV에서 소개하고 2004년 IJCV에서 확장하였다. SIFT 알고리즘은 feature detection 분야의 2000년대 초반을 섬렵한 기념비적인 알고리즘 이다. SIFT는 local feature를 추출하고 이를 normalized descriptor로 변환하여 Scale invariance를 갖춘 local feature extracting 알고리즘이다.Scale Space Detection아래와 같이 같은 부분인데 scale이 다르.. 2024. 5. 27.
Digital Image Processing - Automatic Scale Selection Automatic Scale Selection이전에 다룬 Harris Detector의 문제점을 개선한 Automatic Scale Selection 기법에 대해 알아보자. 이름 그대로 Harris Detector가 Scale invariance가 부족하다는 점을 극복하여 자동으로 Scale에 대한 판단을 해내는 기법이다.위와 같이 이미지가 확대 되었음에도 유사한 feature로 판단해내는 기법이다.Scale에 따라 함수가 반응하는 것이 달라지고 normalization과정을 통해 scale이 조정되어 local feature를 비교하는 것이 쉬워지는 것을 볼 수 있다. 이때 사용하는 signature function으로 Laplacian-of-Gaussian(LoG)가 유용하게 사용된다.아래와 같이 L.. 2024. 5. 23.
Digital Image Processing - Harris Detector Formulation Harris Detector Formulation이전 수업에 이어서 Harris corner detector의 수식에 대해서 자세히 알아보자. 이전 시간에 아래 식들의 첫줄 즉 벡터 변화에 따른 Intensity의 변화 차이의 제곱의 합을 통해 E값을 구하는 것을 살펴봤다. 그에 이어서 아래 식 변환 과정은 1차 테일러 급수를 이용하여 푸른색으로 밑줄친 부분의 식을 붉은 색으로 동그라미 친 식으로 변환하고 추가 계산하는 과정을 통해 최종적으로 사용될 Matrix A를 구하는 과정이다.참고로 테일러 급수는 아래와 같이 f(x)를 n차 미분의 합으로 표현하는 방법이다. 이때 1차 테일러 급수는 아래 식들중 첫번째 형태를 의미한다. 실제로 영상처리 분야에서 35년동안 연구하시면서 2차 이상의 테일러 급수 형태.. 2024. 5. 20.
Digital Image Processing - Local Feature Local featureLocal feature와 Global feature를 비교하면 위와 같다. Global feature는 전체 Histogram을 비교하여 비슷한지 평가할때 쓰일 수 있다. 앞에서 texture에 대해서 배울때 나왔던 개념인 Gradient orientation의 Histogram을 뜻하는 HoG가 유용하게 쓰인다. 반면 위 사진에서 볼 수 있듯이 local feature는 부분 부분을 비교하고 평가하는 것이다.부분부분을 뽑아내서 비교하는 모습이다. 이렇게 뽑아낸 부분부분을 patch라고 부른다. 이때 첫번째 patch는 하늘의 어느곳을 잡아도 비슷하므로 local feature를 잡아냈다고 하기 어려울 것이다. 반면 세번째 patch는 조금만 이동해도 완전히 달라지는 부분이므로 .. 2024. 5. 19.
Digital Image Processing - Texture TextureTexture(질감)은 "Regular or stochastic patterns caused by bumps, grooves, and/or markings"로 정의될 수 있다.Texture는 기본적으로 공간적으로 반복되는 pattern을 의미하는 것인데 위 그림들과 같이 자연의 texture는 좀더 stochastic하고 인간이 만들어낸 이미지나 물체는 비교적 regular하다. Stochastic하다는 것이 완전히 불규칙하다는 것이 아니라 확률적으로 pattern이 존재한다는 것이다. 예를들면 물은 불규칙하게 보이지만 그래픽 관련 프로그램에서 물리적인 water texture 패턴이 존재하듯이 이 부분이 물이구나를 알 수 있는 확률적 패턴이 존재한다. 반면 regular하다는 것은 좀더 명.. 2024. 5. 16.
DIP 실습 - Mean-shift / GrabCut 풀이 코드#include#include#include "opencv2/core/core.hpp"#include "opencv2/highgui/highgui.hpp"#include "opencv2/imgproc/imgproc.hpp"#include using namespace cv;using namespace std;#include void exCvMeanShift() { Mat img = imread("fruits.png"); if (img.empty()) exit(-1); cout img_split; // 채널별로 분할되는 Mat MeanShift(float, float, float, float, int); // Bandwidth 설정을 위한 생성자 void doFilter.. 2024. 5. 16.
728x90