Programming/DIP
[CV] Fitting
computer vision과 image processing에서의 Fitting목표computer vision과 image processing에서 Fitting의 주요 목표는관찰된 데이터(이미지, 텍스트, 센서 데이터 등)로부터특정 양이나 구조를가장 잘 설명하는 모델을 선택하는 과정임.이를 통해 이미지의 특징을 분석하고 다양한 image processing 작업을 수행함.주요 기법1. Least Squares Method (최소 제곱법)설명: Least Squares Method는 관찰된 값과 모델이 예측한 값 간의 제곱 오차 합을 최소화하는 방법임.적용: 직선, 평면 또는 곡선을 점 집합에 fitting할 때 사용됨. 예를 들어, 엣지 감지 후 직선을 fitting하는 데 사용됨.장점: 구현이 간단하고..
[DIP] Image Stitching
Image Stitching"Image Stitching"은 여러 장의 사진 이미지를 결합하여 하나의 큰 이미지나 파노라마를 만드는 기술임.이 용어는 원래 바느질에서 유래했으며,바느질에서 "stitch"(바늘질)는 바늘과 실을 사용해 천이나 다른 재료를 연결하는 각각의 작은 바늘질을 의미함."Stitching"(스티칭)은 이러한 바늘질을 모아 하나의 큰 구조를 만드는 과정임. Image Patch들을 결합하는 과정도 이와 비슷한 측면이 있으며, 이에 기반해 Image Stitching이라는 용어가 생김.여러 개의 작은 이미지 조각들을 하나의 큰 이미지로 결합하는 과정을 "stitching"(스티칭)이라고 부름.Image Stitching 단계이 과정은 크게 다음의 네 가지 단계로 이루어짐:Alignmen..
[CV] Homography 에 대해서
Homographic transformation 이란Homographic transformation(호모그래피 변환)은projective transformation(투영 변환) 또는homography(호모그래피)라고도 불리며,한 평면의 점들을 다른 평면의 점들로 매핑하는 기하학적 변환임.이 변환은 computer vision(컴퓨터 비전), image processing(이미지 처리)에서image rectification(이미지 보정),perspective correction(원근법 수정),3D reconstruction(3D 재구성) 등의 작업에 널리 사용됨.https://dsaint31.me/mkdocs_site/DIP/cv2/ch02/dip_geometric_transformation/#perspe..
[OpenCV] cornerSubPix : 코너 검출 정확도 향상
OpenCV 라이브러리에서 제공하는 cornerSubPix는코너 검출의 정확도를 높이기 위해 사용되는 함수임.이 함수는 초기 검출된 코너 위치를 서브픽셀 수준으로 정밀하게 조정하기 위해 사용됨.함수 설명cornerSubPix 함수는 다음과 같은 인자를 받음:image (이미지): 입력 이미지로, 그레이스케일 이미지여야 함.corners (코너들): 초기 코너 위치로, goodFeaturesToTrack나 findChessboardCorners와 같은 함수로부터 얻은 값임.winSize (윈도우 크기): 코너를 세밀하게 조정할 때 사용하는 검색 윈도우의 절반 크기임. 예를 들어, (5, 5)로 설정하면 실제 윈도우 크기는 11x11이 됨.zeroZone (제로 존): 검색 중 중심 영역을 무시할 영역임. ..
[DIP] functional plot and image plot.
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..
[DIP] Image Quality 관련 정량화 지표들: Resolution, Contrast, SNR
Image Quality 관련 정량화 지표들다음은 Image Restoration등에서 사용되는 Image Quality를 나타내는 정량적 지표들에 대한 간략한 소개임.(image acquisition에 사용된 장비의 성능의 비교에도 사용됨) 참고로 이 문서에서 다룬 지표들과 달리 ideal image가 존재하는 경우엔 해당 ideal image와의 비교를 통해 얼마나 차이가 나는지를 정량화하는 경우도 있음. 이들 지표들에 대해선 다음 URL를 참고.https://dsaint31.me/mkdocs_site/DIP/cv2/etc/dip_metrics/ BME228Metrics for Image Quality Image restoration의 경우, image degradation의 원인을 modeling하..
[DIP] Function plot and Image display
Image는 수학적으로 independent variable이 2개인 multi-variable function $f(x,y)$로 표시할 수 있음. gray-scale image일 때는 multi-variable scalar-valued function (또는 multi-variate function이라도 부른다) color image라면 multi-variable vector-valued function color image 의 경우, 함숫값이 RGB와 같이 3개의 component를 가진 vector임 용어관련 참고 : https://dsaint31.tistory.com/389 [Math] Multi-variable vs. Multi-variate and Multiple Regression 1. Mu..
[DIP] Radial distortion : barrel and pincushion distortions
0. Remappingmatrix equation으로 표현할 수 없는 형태(non-linear)의 이미지 모양 변환을 위한 기능.OpenCV에서 cv2.remap() 함수를 통해 제공되며,lens distortion 및radial distortion등을모델링하거나 제거하는데 사용가능함.dst = cv2.remap(src, mapx, mapy, interpolation, dst, borderMode, borderValue)src: 입력 이미지mapx, mapy: x축과 y축으로 이동할 좌표, src와 동일한 크기, dtype=float32 임.dst : 결과 이미지, optional그 외 : cv2.warpAffine()과 동일mapx[0][0] = 9.0, mapy[0][0] = 3.0 인 경우,입력 i..
[DIP] Basic Operations (on a binary image) for Morphological Operations
Binary image는 pixel intensity로 0 과 1(혹은 255)의 값을 가지며, 주로 set(집합)과 관련된 연산을 통해 Morphological operaton이 처리됨. 화소집합 영상 내에 존재하는 pixel 중, 처리 대상이 되는 object에 해당하는 pixel들의 집합 분야에 따라 해당 대상은 다양함. 일반적으로 “화소집합” 내의 pixel은 1 의 값을, 그 외의 pixel은 0을 값으로 가짐. 기본 연산들 Union 연산 화소집합 간의 Union Intersection 연산 화소 집합 간의 Interception Complement 연산 화소 집합 간의 Complement Difference 연산 화소 집합 간의 차이. Translation 연산 화소 집합 의 이동오른쪽의 결..
[OpenCV] imshow 창설정 및 종료 처리 (x버튼 처리)
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의 크기 조정이 가능함..