[CV] Camera Response Function (+Gamma Correction)
·
Programming/DIP
https://www.youtube.com/watch?v=95DNdbxaIXECamera Response Function카메라가 실제 장면의 빛의 강도(Brightness)를 디지털 이미지 픽셀 값으로 변환하는 방식을 설명하는 함수.$p(\lambda)$ : Photon flux, $\lambda$ 는 wavelength.$I$ : Electron flux from photodiode (Luminance라고 생각해도 된다.) 여기서 $B$ 는 brightness 임.$$ \begin{aligned}B&=It\left(\frac{\pi d^2}{4}\right) = It\pi r^2\\&=Ie\end{aligned} $$where$t$ : exposure time or integration time$d$ ..
[CV] DIP, Image Analysis, and Computer Vision
·
Programming/DIP
Image Processing과 Computer Vision(CV)은 상당 부분 겹쳐있으며, 명확하게 구분하기 어려운 분야들임. 이 두 분야는 연속선상에 있으며, 상당히 경계가 모호함. 공통적으로 두 분야 모두linear algebra, probability, statistics 등의 수학적 지식에 익숙할수록 깊이 있는 이해와 응용이 가능하며이론적 개념을 실제로 구현하고 적용하는 것이 필수적이라,MATLAB, Python, C, C++ 등의 프로그래밍 언어를 다룰 수 있는 능력을 요구함.프로그래밍 기술은 알고리즘을 구현하고, 실험하며, 결과를 시각화하는 데 핵심적인 역할을 함. 이러한 공통점과 모호한 경계에도 불구하고, Image Processing, Image Analysis, 그리고 Computer ..
[DIP] Image Stitching
·
Programming/DIP
Image Stitching"Image Stitching"은 여러 장의 사진 이미지를 결합하여 하나의 큰 이미지나 파노라마를 만드는 기술임.이 용어는 원래 바느질에서 유래했으며,바느질에서 "stitch"(바늘질)는 바늘과 실을 사용해 천이나 다른 재료를 연결하는 각각의 작은 바늘질을 의미함."Stitching"(스티칭)은 이러한 바늘질을 모아 하나의 큰 구조를 만드는 과정임. Image Patch들을 결합하는 과정도 이와 비슷한 측면이 있으며, 이에 기반해 Image Stitching이라는 용어가 생김.여러 개의 작은 이미지 조각들을 하나의 큰 이미지로 결합하는 과정을 "stitching"(스티칭)이라고 부름.Image Stitching 단계이 과정은 크게 다음의 네 가지 단계로 이루어짐:Alignmen..
[DIP] functional plot and image plot.
·
Programming/DIP
functional plot and image plot.Functional plot $f(x,y)$라는  function으로 image를 모델링할 수 있음.2개의 독립변수 $x,y$의 함수로 볼 경우, 3D graphics로 그릴 수 있음.2개의 독립변수에 의해  intensity 또는 brightness가 결정됨.(color 의 경우엔 dependent variable이 여러개로 vector라고 볼 수 있음) 다음은 matplotlib 로 functinal plot 을 수행하는 code snippet 임.from scipy import datasetsimport cv2import numpy as npimport matplotlib.pyplot as pltimg = datasets.face()img_gr..
[OpenCV] imshow 창설정 및 종료 처리 (x버튼 처리)
·
Programming/DIP
imshow 창설정 및 종료 처리 (x버튼 처리)창 설정 관련 arguments 및 options cv2.namedWindow를 통해 미리 창에 대한 title을 지정하여 놓을 수 있음.cv2.namedWindow('image', cv2.WINDOW_NORMAL)# Using resizeWindow() : Below code does not works with cv2.WINDOW_AUTOSIZE# cv2.resizeWindow("image", 300, 700)cv2.WINDOW_AUTOSIZE가 기본으로 2nd argument없이 호출시 선택됨.읽어들이는 image 크기에 맞춰 window의 크기가 결정됨.2nd argument로 cv2.WINDOW_NORMAL를 설정시 window의 크기 조정이 가능함..
[DIP] Dithering
·
Programming/DIP
다음은 wikipedia의 정의임. Dither is an intentionally applied form of noise used to randomize quantization error, preventing large-scale patterns such as color banding in images. Dither is routinely used in processing of both digital audio and video data. 즉, 의도적으로 삽입된 noise인데 이를 사람이 보거나 들을 때, quantizaiton error를 randomize하여 최소화된 qunantization error를 느끼게 하는 것이다. 실제로 256 단계의 gray-scale이미지를 0,1의 binary im..