이미지의 통계적 속성을 계산하기 위한 기본형식. 일부 통계 기본 요소는 계산 중에 스크래치 버퍼도 필요하다. (https://docs.nvidia.com/cuda/npp/introduction.html#general_conventions_lb_1general_scratch_buffer)
형태학적 이미지 작업.
형태학적 연산은 이웃 연산으로 분류된다.
이러한 함수는 nppim 라이브러리에서 찾을 수 있다.
선형 이미지 변환.
함수는 nppist 라이브러리에 있다. 사용하는 하위 라이브러리에만 연결하면 동적 라이브러리를 사용할때 링크시간, 애플리케이션 로드 시간 및 CUDA 런타임 시작 시간을 크게 절약할수 있다.
Cuda에서 메모리는 크게 Host, Device로 나뉜다.
Host는 Cuda를 호출하는 기기, 윈도우 환경에서는 PC의 메모리 공간을 Host 메모리라고 하고, Cuda가 동작하는 Nvidia 기기, GPU를 Device 메모리라고 한다.
npp의 Label 마커는 라벨링 까지만 수행 하는것 같다. 통상의 블랍에서 사용하는 위치, 폭, 높이, 무게중심 등은 추가 처리를 해야하는 것 같다.
요즘 프로젝트에서 자주 사용하는 구성은 WPF UI에 C++ DLL로 프로세싱 구성을 한다.
이 방법이 장비 프로그램의 유연성과 호환성은 좋지만 C#에서 C++ DLL을 호출하는 인터페이스를 구성할 때 자료 구조를 매칭시켜줘야한다.
또한 C#과 C++간의 호출 시 마샬링의 오버헤드가 0는 아니기에 가급적 적은 횟수의 DLL 함수를 호출하는게 어플리케이션 성능 최적화에 도움이 된다. 단일 값을 받아오기보다는 데이터를 묶어서 한번에 받아오는 방식이 유리한 것 같다.
연결된 영역을 특정 새로운 값으로 채운다.
사용 가능한 컴퓨터 비전 함수들이다.
중심이 \(\textcolor{Black}{(x_c,y_c)}\) 이고, 반지름이 R인 원의 방정식은
‘Visual C++ 영상 처리 프로그래밍’에 있는 레이블링(블롭) 알고리즘을 정리한다.
TCP/IP 공부를 하면 크게는 동기 통신 이후 비동기 통신을 배우는 그 다음이 윈도우는 IOCP, 리눅스는 epoll이다. 간단히 말해 통신자체는 비동기로 수행을 하고(Non-Blocked), 결과확인을 IO쓰레드에서 전담한다는 것이다.