DIP

    [DIP] functional plot and image 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 datasets import cv2 import numpy as np import matplotlib.pyplot as plt img = datasets.face() img_gray = img[...,0] # img_gray = cv2.cvtColo..

    [OpenCV] imshow 창설정 및 종료 처리 (x버튼 처리).

    창 설정 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의 크기가 결정됨. cv2.WINDOW_NORMAL로 설정시 window의 크기를 조정가능함.(마우스로 window의 크기를 조절할 수 있음) cv2.WINDOW_GUI_EXPANDED로 설정시 확..

    [DIP] Dithering

    다음은 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..

    [OpenCV] cvtColor

    OpenCV의 경우, 다양한 color space를 지원함. result_img = cv2.cvtColor(src_img, conversion_flag) 위와 같은 code를 통해 src_img를 다른 color space의 이미지(실제로는 numpy의 ndarray) result_img로 변경할 수 있음. conversion_flag는 매우 다양하지만, 주로 사용하는 건 다음과 같음. cv2.COLOR_BGR2GRAY : BGR(Blue, Green, Red)을 Gray-scale image로 cv2.COLOR_BGR2RGB : opencv는 BGR이 기본인지라, matplotlib나 PIL과 같이 쓰려면 RGB로 바꾸어야 함. cv2.COLOR_BGR2HSV : BGR을 색의 종류를 한 채널(Hue)..

    NumPy : sum, mean, std, and so on

    영상을 처리할 때, 영상의 각 pixel intensity에 대해 다양한 통계처리가 필요함. NumPy는 자체적으로 다양한 통계처리 함수들 (집계함수, 또는 Aggregation Function 이라고 불림) 을 제공함. 참고로, 영상 데이터에서는 pixel (or element)의 값이 NaN인 경우가 거의 없으나 다른 matrix나 tensor 데이터의 경우에는 NaN 인 원소를 가질 수 있음. 이 경우, NaN Safe Aggregation Functions를 사용하여 NaN은 무시하고 값을 구할 수 있음. https://ds31x.tistory.com/223 [Tensor] NaN Safe Aggregation Functions NaN (Not a Number) 값을 포함하는 Tensor 인스턴스..