영상처리/3D computer vision
-
OpenCV와 Pillow의 이미지 리사이징 알고리즘 비교영상처리/3D computer vision 2025. 2. 6. 21:37
📌 OpenCV의 이미지 리사이징 알고리즘OpenCV에서는 cv2.resize() 함수를 사용하여 이미지를 리사이징할 수 있으며, 여러 가지 보간법(interpolation method)을 제공합니다.🔹 OpenCV에서 제공하는 보간법알고리즘설명특성cv2.INTER_NEAREST가장 가까운 픽셀 값을 사용빠르지만 계단 현상(Aliasing) 발생 가능cv2.INTER_LINEAR2x2 픽셀을 선형 보간속도와 품질 균형이 좋음 (기본값)cv2.INTER_CUBIC4x4 픽셀을 이용한 3차 보간선명한 결과를 제공하지만 속도가 느림cv2.INTER_LANCZOS48x8 픽셀을 이용한 Lanczos 보간가장 선명한 결과를 제공하지만 속도가 가장 느림cv2.INTER_AREA작은 이미지로 축소 시 유리블러 현..
-
야경 사진 노이즈 제거영상처리/3D computer vision 2024. 2. 22. 23:26
야경 사진을 여러장 찍어서 denoising하는 코드를 만들었다. 1. 먼저 여러장의 사진을 최대한 같은 위치에서 찍었다. 2. ORB feature를 이용, 영상간 homography 변환을 추출, warping을 수행한다. 3. warping 된 영상을 유사도 기반으로 weight를 주어 합친다. import torch import cv2 import numpy as np import os In [ ]: ref_img=cv2.imread('20240222_190925.jpg') h=ref_img.shape[0] w=ref_img.shape[1] In [ ]: orb = cv2.ORB_create() bf = cv2.BFMatcher(cv2.NORM_HAMMING, crossCheck=True) In ..
-
Handheld Multi-Frame Super-Resolution (2019)영상처리/3D computer vision 2023. 11. 23. 21:36
multi-frame super resolution 기술을 mobile phone에 이용한 기술에 대한 연구이다. 사용자의 손떨림에 의해, 핸드폰 카메라의 영상이 추가적인 sampling이 되며 이를 이용해 demosaic + Noise Reduction + Super resolution을 수행한다. .위와 같은 구조로 구동된다. - Local gradients와 Kernels은 Edge conservation을 위해 사용된다. (gradient가 큰 방향으로는 kernel의 크기를 줄임) - Alignment Vectors (optical flow)와 local statistics (영상의 local deviation 대비 frame간 color 차이) 를 통해 해당 optical flow의 신뢰도 기..
-
pyflow optical flow영상처리/3D computer vision 2023. 11. 1. 19:29
dense optical flow alogirhtm 중 성능이 좋은 classical한 algorithm을 발견했다. 아래 git으로, Ce Liu's C++ implementation of Coarse2Fine Optical Flow 를 python wrapper를 만든 것이다. https://github.com/pathak22/pyflow GitHub - pathak22/pyflow: Fast, accurate and easy to run dense optical flow with python wrapper Fast, accurate and easy to run dense optical flow with python wrapper - GitHub - pathak22/pyflow: Fast, accur..
-
RAFT: Recurrent All-Pairs Field Transforms for Optical Flow 돌려보기영상처리/3D computer vision 2023. 10. 30. 20:56
RAFT를 이용해 dense optical flow를 계산해보고자 한다. 아래와 같이, torchvision.models.optical_flow로부터 이미 train된 raft 모델을 가져와, image와 optical flow를 overlay 해보 았다. import numpy as np import torch import matplotlib.pyplot as plt import torchvision.transforms.functional as F import torchvision.transforms as T import cv2 from torchvision.models.optical_flow import raft_small from torchvision.models.optical_flow import..
-
Dense Optical Flow algorithm 비교 (open cv)영상처리/3D computer vision 2023. 10. 15. 01:08
dense optical flow algorithm 중, opencv에서 사용 가능한 것들끼리 비교하고자 하였다. *비교 코드는 아래 사이트를 참조하였다. https://gist.github.com/FingerRec/eba088d6d7a50e17c875d74684ec2849 opencv optical_flow> opencv optical_flow>. GitHub Gist: instantly share code, notes, and snippets. gist.github.com 실험에 아래의 두 이미지를 사용하였다. 위의 결과에서, Deep Flow가 가장 합리적인 결과를 보여주었다. # coding: utf-8 import numpy as np import cv2 import time import mat..
-
Epipolar geometry영상처리/3D computer vision 2023. 2. 12. 15:43
Epipolar geometry란, stereo vision의 geometry이다. 3D vision의 기본 모델이라고 할 수 있겠다. 검색해보면 좌표계의 notation이 제대로 안된 식들만 보여서 정확히 이해가 어려웠다.... 스스로 이해한 것들을 여기에 정리하고자 한다. 공간상의 점 P를 카메라 C1/ C2에서 관찰하는 상황을 모델로 정한다. 이때, "기존의 카메라 위치 C1 / 공간상의 점 P / 새 카메라 위치 C2를 포함한 평면" 을 epipolar plane 이라 한다. 여기에 좌표계의 transformation이 필요하다. (관찰한 좌표계를 명시하지 않으면 큰 혼란이 야기된다.) 위의 모델을 이 기준으로 표현하면, T2_1은 C1에서의 관찰을 C2로 변환해주는 변환이 된다. P1은 P를 C..
-
Homogeneous coordinate영상처리/3D computer vision 2023. 2. 2. 21:07
computer vision을 공부하면 제일 먼저 만나는 건, 역시나 pinhole camera 모델이다. 그 pinhole camera 모델을 공부하려면 이제 homogeneous coordinate로 시작하게 된다. 하지만 생각보다 정의가 명확하지 않아, 공부를 시작하다보면 여기서 좀 막히는 경향이 있다... (그러려니 라고 생각하면 별 문제는 없다.) Homogeneous coordinate https://en.wikipedia.org/wiki/Homogeneous_coordinates Homogeneous coordinates - Wikipedia From Wikipedia, the free encyclopedia Coordinate system used in projective geometry ..