[환경] IDE : Visual Studio 2019 Lib : OpenCV 4.1.1 [증상] 별다른 코드 없이, opencv_world411d.lib 라이브러리 로드 후, 프로그램을 실행하고 바로 종료했을 때 Debug 창에 메모리 누수 탐지 OpenCV 관련 코드는 cv::VideoCapture 변수(URL주소) 밖에 없었음. [원인] OpenCV 라이브러리가 로딩되는 시점과, MFC 공용 DLL이 로드되는 시점 상 충돌 발생으로 예상 [해결] 프로젝트 속성 -> 링커 -> 입력에서 구성: Debug 선택 후, 지연 로드된 DLL 부분에 opencv_world411d.dll 추가 그 외, 참조되는 OpenCV 경로 상 bin파일 내 다른 dll이 있으면 해당 dll까지 모두 추가.
Vision
색상의 표현과 색 공간 영상 복안법을 보기 전 간단하게 색 체계를 알아보자. 흔히 영상과 관련된 작업을 하다 보면 RGB, CMY, CMYK, Gamut, sRGB 등 여러 용어를 접할 수 있다. 이러한 용어들이 각각 무엇을 의미하는지 간단하게 정리한다. 빛의 3원색, 색의 3원색 영상을 전공하지 않아도 가장 많이 들을 수 있는 단어는 RGB이다. RGB란 Red, Green, Blue의 약어로 빛의 3원색을 의미한다. 이 색상은 색을 혼합할 수록 밝아지는 경향을 띄는데 이를 가산 혼합이라 한다. 따라서 결과적으로 3가지 색상을 동일하게 혼합하면 흰색으로 표현된다. 우리가 육안으로 바라보는 모든 피사체들은 빛의 반사를 통해 우리에게 접해지는데 이 빛이 RGB 형태인 셈이다. RGB의 값을 각각 동일한 비..
최초의 이미지 생성 및 베이어 필터와 패턴 영상이 이미지 센서를 통해 최종적으로 디지털 데이터로 변환된다는 것을 배웠다. 그 과정 중 하나인 CFA(Color Filter Array)의 종류과 Raw Image에 대해 알아보자. Raw Image Raw란 사전적 의미로 날 것의, 가공되지 않은 것을 의미한다. 따라서 Raw Data란 말 그대로 가공되지 않은 데이터(영상)라 할 수 있다. 물론 실제로 아무런 가공이 되지 않은 것은 아니다. 다만 전반적인 프로세싱 과정 중 아직 압축 등의 변환이 되지 않은 순수한 데이터라 할 수 있다. Raw Image를 한마디로 정의하면 DSP(Digital Signal Processing)가 이뤄지지 않은 상태로 저장된 원본 데이터라 할 수 있다. 다른 의미로 Patt..
흔히 카메라를 우리의 눈에 비교한다. 우리가 물체 또는 배경(이 후 피사체라 한다)을 보면 그 빛이 망막을 통해 형성되고 여러 과정을 거쳐 뇌에서 인식된다.본 문은 영상 처리의 기본이자, 영상이 저장되는 과정을 토대로 센서부터 포맷까지 살펴보도록 한다.참고로 영상이라는 단어는 이미지와 비디오(동영상)를 포함하는 의미이다. 동영상도 결과적으로 이미지의 집합이기 때문에… 그래서 영상 처리를 영어로 Image Processing이라 한다. 이미지 센서가장 먼저 알아볼 것은 이미지 센서이다. 컴퓨터 공학적인 측면에서 렌즈 등의 외부 장치는 제외하고 이미지 센서는 가장 핵심적인 장치라 할 수 있다.이미지 센서는 피사체의 정보를 읽어 해당 정보를 전기적 이미지 시그널로 변환해주는 장치이다. 현실의 물체는 빛 에너지..
1. H.265/HEVC 표준의 개요HEVC 표준화 작업은 2010년 1월부터 MPEG(Moving Picture Expert Group)과 VCEG(Video Coding Experts Group)이 공동 설립한 JCT-VC(Joint Collaboration Team on Video Coding)에 의해 시작되었다.이전의 H.264/AVC 비디오 부호화 표준이 유선망과 무선망이 통합되고 방송과 통신이 융합되어 언제 어디서나 인터넷과 방송을 즐길 수 있는 방송 통신 융합 서비스 시대를 개척하였다면, 차세대 비디오 압축 기술인 HEVC는 방송 통신 융합 서비스를 한 단계 더욱 진보시킬 수 있는 표준이 될 것이다. 2. H.265/HEVC의 표준화 배경최근 3D 영상과 Ultra HD급 초고해상도 영상과 ..
비디오 영상 포맷HEVC를 비롯한 표준 비디오 코덱들은 디지털 영상의 해상도와 시간 길이에 비례해서 늘어나는 데이터의 표현량을 줄이는 인코더와 압축 스트림(Stream)만으로도 양질의 영상을 복원하는 디코더로 구성된다. 1. 영상 취득우리가 인지하는 3차원 공간의 모든 위치들은 x, y, z 세 개의 연속 변수들로 충분히 표현할 수 있고, 지속적으로 흘러가는 모든 시간과 순간들도 연속된 도메인 위에 표현할 수 있다.그리고 이러한 것은 모두 적당한 시간 (ex. 기업의 1~4분기, 다이어트 한달 계획,..)을 기준으로 나누어 이산적으로 표현할 필요가 있다.영상의 이산 표현은연속성을 가지는 시간을 이산 도메인에서 표현하는 경우는, 동영상을 취득, 저장, 재현 하는 경우에도 적용되는데 우리가 멀티미디어 장치를..
본 문은 C++ 11 기반으로 작성되었습니다. 배열을 활용한 이미지 표현 이미지 처리를 하다보면 배열을 주로 사용한다. 이미지의 경우 2차원 배열이라고 생각하면 쉽고 따라서 1차원 배열보다 2차원 배열을 사용하는 것이 처리의 직관성을 높일 수 있다. 먼저 배열의 경우 동적할당을 통해 사용하는데 사용하는 코드는 다음과 같다. BYTE** image = new BYTE*[ (이미지)세로 ]; image[0] = new BYTE[ 세로 * (이미지)가로 ]; for( int i = 1; i < 세로; i++ ) { image[i] = image[i - 1] + 가로; } memset( image, 0, 가로*세로 ); // 사용이 끝난 후 delete[] image[0]; delete[] image; 코드를 ..