분류 전체보기
-
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작은 이미지로 축소 시 유리블러 현..
-
VR 광학계에 사용되는 Pancake Lens: 원리와 적용영상처리/Extended reality 2025. 2. 4. 23:23
1. Pancake Lens란 무엇인가?Pancake Lens는 VR(가상 현실) 헤드셋에 사용되는 초박형 광학 렌즈로, 기존의 볼록 렌즈 대신 사용됩니다. 이 렌즈는 **편광(polarization)**과 **반사(reflection)**의 원리를 활용해 광로를 효과적으로 접어, 장치의 두께를 대폭 줄이는 것이 특징입니다.2. Pancake Lens의 원리Pancake 렌즈는 편광 필터와 반사 코팅을 이용하여 빛의 경로를 반복적으로 반사시킵니다. 이 과정을 통해 렌즈의 전체 길이를 줄이면서도 높은 화질을 유지할 수 있습니다.작동 원리:광원이 방출한 빛이 렌즈를 통과.편광 필터에 의해 빛이 선형 편광됨.편광된 빛이 반사 표면에 닿아 경로가 꺾임.빛이 다시 렌즈를 통과하면서 초점이 맞춰짐.3. 왜 Panc..
-
C++ 네트워크 프로그래밍과 소켓 통신c++ 2025. 2. 4. 23:13
1. 네트워크 프로그래밍이란?네트워크 프로그래밍은 컴퓨터 간의 데이터 전송을 위해 프로그래밍하는 기술입니다. 이를 통해 클라이언트와 서버 간의 통신을 구현할 수 있습니다.(1) 소켓(Socket)이란?소켓은 네트워크를 통해 데이터를 송수신하기 위한 양 끝단의 인터페이스입니다.C++에서는 주로 BSD 소켓 API를 사용하여 네트워크 통신을 구현합니다.(2) 클라이언트-서버 모델서버(Server): 클라이언트의 요청을 기다리고 응답하는 역할클라이언트(Client): 서버에 요청을 보내고 응답을 받는 역할2. C++에서 소켓 프로그래밍 준비하기C++에서 소켓 프로그래밍을 위해 다음 헤더 파일을 포함해야 합니다.#include #include #include #include #include : 소켓 관련 함수 ..
-
C++ 멀티스레딩 프로그래밍과 동기화 기법c++ 2025. 2. 3. 21:10
1. 멀티스레딩(Multithreading)이란?멀티스레딩은 하나의 프로그램이 동시에 여러 작업을 수행할 수 있게 해주는 기술입니다. C++에서는 thread 라이브러리를 통해 멀티스레딩을 구현할 수 있습니다.(1) 스레드의 기본 개념스레드(Thread): 프로세스 내에서 실행되는 가장 작은 단위멀티스레딩을 통해 병렬 처리가 가능하여 성능을 향상시킬 수 있습니다.2. C++에서 스레드 사용하기(1) 기본 스레드 생성 및 실행#include #include using namespace std;void printMessage() { cout 출력 결과:메인 스레드에서 실행 중입니다.스레드에서 실행 중입니다.(2) 인자 전달 스레드스레드 함수에 인자를 전달할 수 있습니다.#include #include ..
-
C++ 표준 템플릿 라이브러리(STL)와 스마트 포인터c++ 2025. 2. 3. 21:07
1. 표준 템플릿 라이브러리(STL)란?**표준 템플릿 라이브러리(STL)**는 C++에서 제공하는 강력한 데이터 구조와 알고리즘의 집합입니다. STL은 크게 컨테이너(Containers), 반복자(Iterators), **알고리즘(Algorithms)**으로 구성됩니다.(1) STL의 주요 구성 요소컨테이너(Containers): 데이터를 저장하는 자료구조 (ex. vector, list, map, set)반복자(Iterators): 컨테이너의 원소를 순회하는 도구알고리즘(Algorithms): 정렬, 검색 등 다양한 알고리즘 제공2. 주요 STL 컨테이너 사용법(1) vector: 동적 배열vector는 크기가 가변적인 동적 배열로, 가장 널리 사용되는 컨테이너 중 하나입니다.#include #inc..
-
C++ 객체 지향 프로그래밍: 연산자 오버로딩과 템플릿c++ 2025. 2. 2. 14:43
1. 연산자 오버로딩(Operator Overloading)이란?연산자 오버로딩은 C++에서 기존 연산자(+, -, *, / 등)의 기능을 사용자 정의 데이터 타입에 맞게 재정의하는 기능입니다. 이를 통해 클래스 객체 간에도 직관적인 연산을 수행할 수 있습니다.(1) 기본 연산자 오버로딩#include using namespace std;class Complex {private: double real; double imag;public: // 생성자 Complex(double r = 0.0, double i = 0.0) : real(r), imag(i) {} // '+' 연산자 오버로딩 Complex operator + (const Complex& obj) { ..
-
Depth Completion영상처리/Depth sensors 2025. 2. 1. 19:42
1. Depth Completion이란?Depth Completion은 불완전하거나 희소한(depth-sparse) 깊이 정보를 완전하고 연속적인(depth-dense) 깊이 맵으로 변환하는 기술입니다. 주로 라이다(LiDAR) 센서나 스테레오 카메라에서 획득한 깊이 데이터는 특정 영역에서만 정보를 제공하거나 노이즈가 포함될 수 있습니다. 이 기술은 이러한 데이터를 보완하여 3D 환경을 더 정확하게 이해하는 데 도움을 줍니다.활용 분야:자율주행 차량: 라이다 센서 데이터를 보완해 정확한 거리 및 장애물 인식로봇 비전: 복잡한 환경에서의 경로 탐색 및 객체 인식AR/VR: 실제 공간의 깊이 정보를 바탕으로 몰입형 콘텐츠 제작의료 영상 처리: CT 및 MRI 스캔의 3D 재구성 보완2. Depth Compl..
-
HDR 기본 원리영상처리/camera ISP 2025. 2. 1. 19:30
1. HDR의 기본 개념과 원리HDR(High Dynamic Range) 는 말 그대로 넓은 범위의 밝기(다이내믹 레인지) 를 표현하는 기술입니다. 일반적인 사진에서는 밝은 부분이 너무 하얗게 날아가거나, 어두운 부분이 너무 검게 뭉개지는 경우가 많습니다. HDR은 이러한 문제를 해결하여 밝은 영역과 어두운 영역 모두에서 세부적인 디테일을 살려주는 기술입니다.기본 원리는 여러 장의 사진을 서로 다른 노출 값(Exposure)으로 촬영한 후, 이를 합성하여 하나의 이미지로 만드는 것입니다. 예를 들어:언더 노출: 밝은 부분의 디테일을 살림정상 노출: 전반적인 밸런스를 맞춤오버 노출: 어두운 부분의 디테일을 살림이렇게 촬영된 이미지를 ISP에서 합성하여 밝고 어두운 부분 모두에서 디테일이 살아있는 사진을 생..