분류 전체보기 63

SSIM 함수 (Structural Similarity Index Map)

img1, img2 가 있을 때, 두 영상의 유사도 비교하여 0~1 사이 값으로 반환해 주는 함수.// SSIM 계산 및 차이맵 반환 함수double calculateSSIM(const Mat& img1, const Mat& img2, Mat& ssim_map) {const double C1 = 6.5025, C2 = 58.5225;Mat img1_64F, img2_64F;img1.convertTo(img1_64F, CV_64F);img2.convertTo(img2_64F, CV_64F);// 평균값(Mean) 계산Mat mu1, mu2;GaussianBlur(img1_64F, mu1, Size(11, 11), 1.5);GaussianBlur(img2_64F, mu2, Size(11, 11), 1.5);..

C++ 2025.03.17

어셈블리 명령어 정리

MOV: 데이터를 한 위치에서 다른 위치로 이동MOV AX, 10 ; AX 레지스터에 값 10을 저장MOV BX, AX ; BX 레지스터에 AX의 값을 복사ADD: 두 값을 더함MOV AX, 10 ; AX 레지스터에 값 10을 저장MOV BX, AX ; BX 레지스터에 AX의 값을 복사SUB: 두 값을 뺌SUB AX, BX ; AX에서 BX의 값을 빼고 그 결과를 AX에 저장SUB AX, 3 ; AX에서 3을 빼고 그 결과를 AX에 저장CMP: 두 값을 비교하여 플래그를 설정CMP AX, BX ; AX와 BX를 비교 (실제로는 AX - BX)JMP: 지정된 위치로 무조건 점프JMP label ; label로 무조건 점프

기타 2025.01.21

이미지 처리 분야의 주요 미해결 문제

다음은 이미지 처리 분야의 주요 미해결 문제와 그에 따른 연구 범위:1. 초해상도 이미지(Super-Resolution Imaging)문제: 이미지 센서의 해상도 한계를 넘어선 고해상도 이미지를 생성하되 정보 손실이나 왜곡이 발생하지 않도록 처리하는 것.연구 범위: 딥러닝을 활용해 저해상도 이미지를 고해상도로 변환하거나 여러 이미지를 효과적으로 결합하는 새로운 방법 개발.2. 실시간 비디오 이미지 처리문제: 복잡하고 동적인 환경에서 비디오 이미지를 실시간으로 정확하게 처리하는 것.연구 범위: 고성능 하드웨어나 새로운 데이터 샘플링 알고리즘을 활용해 처리 속도를 높이고 품질 저하 없이 효율적인 기술 개발.3. 2D 이미지로부터 3D 이미지 재구성문제: 2D 이미지 데이터를 기반으로 정확하게 3D 구조를 재..

영상처리 2024.12.15

C++ 소멸자에 virtual을 사용하는 이유

virtual 소멸자를 사용하면 다형성을 올바르게 처리할 수 있습니다. 부모 클래스의 포인터를 통해 자식 클래스의 객체를 삭제할 때, 자식 클래스의 소멸자도 호출되어 자원 해제가 올바르게 이루어집니다. 그렇지 않으면 자식 클래스에서 할당한 리소스를 해제하지 못할 수 있습니다. 따라서, 클래스를 상속할 계획이 있는 경우, 특히 동적 메모리를 사용하는 경우 소멸자는 반드시 virtual로 선언해야 합니다.

C++ 2024.12.15

C++ virtual 내부 작동 방식

C++ 에서 클래스를 컴파일하면 그 클래스의 모든 메서드를 담은 바이너리 객체가 생성됩니다. 이 때, virtual로 선언되지 않은 메서드를 호출하는 부분을 컴파일 시간에 결정된 타입의 코드로 교체합니다. 이를 정적 바인딩(static binding) 또는 이른 바인딩(early binding)이라 부릅니다. 메서드를 virtual로 선언하면 vtable(가상 테이블)이라 부르는 특수한 메모리 영역을 활용해서 가장 적합한 구현 코드를 호출합니다. virtual 메서드가 하나 이상 정의된 클래스마다 vtable이 존재하는데, 이 클래스로 생성된 객체마다 vtable에 대한 포인터를 갖게 됩니다. virtual 메서드의 구현 코드에 대한 포인터는 바로 이 vtable에 담겨 있습니다. 그래서 객체에 대해 메..

C++ 2024.12.14