[NumPy] Fancy Indexing & Combined Indexing
·
Programming/DIP
NumPy에서 indexing은 4가지 방식을 따름.scalar를 이용한 indexing ( simple indexing ) : array[0]slicingboolean mask : array[array > 1]fancy indexing : vectorized indexing. index들을 element로 가지는 array를 넘겨줌.combined indexing : 앞서 4가지가 조합된 indexingFancy Indexingimage(or matrix)등에서 높이 (row, height), 넓이 (column, width)에 대해,접근하고자하는 pixel (or entry)들의 index를square bracket안에 넘겨주는 방식임.주의할 점은 fancy indexing으로 넘겨지는 array의 ..
[DIP] OpenCV : Region of Interest (ROI) : Callback으로 구현.
·
Programming/DIP
cv2.selectROI가 아닌 이벤트 핸들러(MouseCallback)를 이용한 구현임.x button (or close button)을 지원하기 위한 구현을 추가.x 키를 누를 경우, roi를 보여주는 창만 닫히도록 처리함.esc 키를 누를 경우, 프로그램 종료.import cv2import numpy as npis_dragging = Falsex0,y0 = -1,-1w0,h0 = -1,-1red = (0,0,255)exit_roi = Falseimport osd_path = os.path.dirname(__file__)f_path = os.path.join(d_path,"lena.png")def onMouse(event, x, y, flags, param): global is_dragging ..
[DIP] opencv : Region of Interest (ROI) : cv2.selectROI
·
Programming/DIP
cv2에서 사각형의 ROI를 선택하는 가장 쉬운 방법. Signatureret_val = cv2.selectROI( [window_name], img [, showCrossHair=True, fromCenter=False] )window_name : ROI 선택을 수행할 window이름. strimg : 보여질 이미지.showCrossHair : ROI 중심에 십자모양 표시 여부fromCenter : 마우스 시작지점을 영역의 중심으로 간주ret_val = (x,y,w,h) of ROISample codeimport cv2import numpy as npimport osd_path = os.path.dirname(__file__)img_path = f'{d_path}/lena.pn..
[NumPy] Broadcasting
·
Programming/DIP
ndarray와 scalar를 연산시킬때, scalar를 상대 ndarray와 같은 shape이면서 해당 scalar의 값을 가진 ndarray로 변경시키고나서 이 scalar로부터 만들어진 ndarray와 상대 ndarray를 동작시키는 방식으로 elementwise연산이 수행되는 기능. 주의할 것은 scalar 를 확장시키는 것이 기본이라는 점임. PyTorch나 TensorFlow의 텐서도 같은 방식으로 broadcasting이 수행된다. 이를 정리하면 다음과 같은 Rule에 따른다고 생각할 수 있음. Rules of Broadcasting Rule 1 두 ndarray의 차원의 수(number of dimensions)가 같지 않을 경우, 적은 ndarray의 shape가 leading side쪽..
[DIP] Signal to Noise : Amplitude, Power, and Differential SNR
·
Programming/DIP
Amplitude SNR 가장 흔하게 사용되는 SNR. signal 의 amplitude와 noise의 amplitude의 ratio. $$\text{SNR}_a=\frac{\text{Amplitude(S)}}{\text{Amplitude(N)}}$$ $S$ : signal. $N$ : noise 주의할 점은 무엇을 signal로 볼지, noise로 볼지는 해당 분야의 상황에 맞춰서 잘 정해야 함. (case dependent) deciBel로 계산시 $$ 20\log_{10}(\text{SNR}_a)$$ 로 계산된다. Power SNR power를 이용함. 보통 amplitude에 비해 squared 된 게 power인 점을 잊지 말자. $$\text{SNR}_p=\frac{\text{Power(S)}..
[DIP] Line pairs per millimeters and Bar phantom
·
Programming/DIP
LP/mm and Bar PhantomLine Pairs per Millimeterslp/mm (line pairs per milimeters)는 영상 시스템의 spatial resolution(공간해상도)를 나타내는 일종의 metric임.spatial frequency가 $\text{mm}^{-1}$이므로 lp/mm은 spatial frequncy로 영상시스템의 공간해상도를 나타냄.$\text{mm}$로 spatial resolution을 나타내는 FWHM이 작을수록 고해상도인 것과 반대로 lp/mm은 값이 클수록 고해상도임 이 수가 클수록 1mm내에 해당 영상시스템이 나타낼 수 있는 line pairs의 수가 많다는 의미이며, 이는 높은 spatial resolution을 가진다는 애기임.사람 눈은 ..