OpenCV 데이터 구조 (core) 와 기본 이미지 처리 알고리즘 (imgproc) 추출

3133 단어 OpenCV
OpenCV 데이터 구조 (core) 와 기본 이미지 처리 알고리즘 (imgproc) 추출
 
./modules/core 에는 Mat, Rect 등 OpenCV 에서 자주 사용 하 는 데이터 구조 가 포함 되 어 있 습 니 다.
 
      
./src 아래 precomp. hpp 를 precomp 로 이름 바 꾸 기core. hpp, 모든./*. cpp 의\# include "precomp. hpp"를\# include "precomp core. hpp"로 바 꾸 고 모든 헤더 파일 을 새 폴 더 include 에 넣 으 며 모든 원본 파일 을 새 폴 더 src 에 넣 습 니 다. 모든 파일 에 포 함 된 파일 은 수정 해 야 합 니 다.
#include "opencv2/core/gpumat.hpp"

#include "opencv2/core/opengl_interop.hpp"

더 이상 앞의 경로 가 필요 하지 않 습 니 다. 바로 다음 으로 바 꿉 니 다.
#include "gpumat.hpp"

#include "opengl_interop.hpp"

 
 
 
 
CMakeLists 는 다음 과 같 습 니 다.
CMAKE_MINIMUM_REQUIRED( VERSION 3.0 )

PROJECT( Matdebug )

AUX_SOURCE_DIRECTORY( . DIR_MAIN )

set(Include_path "${CMAKE_CURRENT_SOURCE_DIR}/include" CACHE STRING "" FORCE)

INCLUDE_DIRECTORIES(${Include_path})

FILE(GLOB_RECURSE INCS "*.h" "*.hpp")

#FILE(GLOB_RECURSE HEADERS *.h *.hpp)

SOURCE_GROUP("Include" FILES ${HEADERS} )

AUX_SOURCE_DIRECTORY(src DIR_SRCS)

ADD_EXECUTABLE( Matdebug ${DIR_SRCS} ${INCS} )

#TARGET_LINK_LIBRARIES(  Matdebug ${OpenCV_LIBS} )

 
./modules/highgui 에는 OpenCV 의 일부 인터페이스 관련 및 읽 기와 쓰기 작업 등 소스 코드 가 포함 되 어 있 으 며, 이미지 에 대한 읽 기와 쓰기 작업 은 일부 이미지 형식의 라 이브 러 리 에 의존 해 야 하기 때문에 깊이 연구 하지 않 았 습 니 다.
./modules/imgproc 에는 OpenCV 의 기본 이미지 알고리즘 이 포함 되 어 있 습 니 다. 마찬가지 로 core 의 원본 코드 와 같이 먼저./src 의 precomp. hpp 를 precomp 로 이름 을 바 꿉 니 다.imgproc. hpp, 모든./*. cpp 의\# include "precomp. hpp"를\# include "precomp imgproc. hpp"로 바 꾸 고 모든 헤더 파일 을 새 폴 더 include 에 넣 고 모든 원본 파일 을 새 폴 더 src 에 넣 고 모든 파일 의 포함 파일 을 수정 합 니 다.
주의: 이 precompcore. hpp 와 precompimgproc. hpp 는 일부\# define 에서 발생 하 는 중복 이 있 습 니 다. 컴 파일 할 때 경 고 를 보 냅 니 다. 예 를 들 어:
#define CV_FAST_CAST_8U(t)  (assert(-256 <= (t) && (t) <= 512), icvSaturate8u_cv[(t)+256])

#define CV_CALC_MIN_8U(a,b) (a) -= CV_FAST_CAST_8U((a) - (b))

#define CV_CALC_MAX_8U(a,b) (a) += CV_FAST_CAST_8U((b) - (a))

\# ifndef 와\# endif 수정 에 가입 할 수 있 지만 잘못 보고 하지 않 으 면 모든 것 이 바 뀌 지 않 습 니 다.
 
highgui 가 그림 을 읽 는 함수 가 없 으 면 어떻게 시험 합 니까? 포인터 와 같은 데이터 흐름 을 고려 하여 시 뮬 레이 션 을 할 때 그림 을/txt 파일 로 저장 합 니 다. (이 때 는 OpenCV 환경 에 의존 합 니 다)
그 다음 에 저 장 된 TXT 데 이 터 를 읽 어서 Mat 구조 에 저장 합 니 다. (이때 Mat 는 OpenCV 라 이브 러 리 를 기반 으로 하지 않 습 니 다)
얼굴 인식 을 하려 면 modules/objdetect 의 일부 방법 을 사용 하여 같은 방법 으로 끌 어 내 고 새로운 main. cpp 를 만들어 야 합 니 다.
이렇게, 이렇게, VS 에서 컴 파일 할 수 있 습 니 다.
파일 을 Linux 환경 에 복사 하여 컴 파일 합 니 다:
 
코어/system. cpp 에서 오류 가 발생 할 수 있 습 니 다. 게다가\# include 는 다 중 스 레 드 라 이브 러 리 를 추가 하고 CMakeLists. txt 도 수정 해 야 합 니 다.
#SET(THREADS_PREFER_PTHREAD_FLAG ON)

FIND_PACKAGE( Threads REQUIRED)

TARGET_LINK_LIBRARIES( Matdebug ${CMAKE_THREAD_LIBS_INIT})

LoadData 파일 에 서 는 교체 기 를 사용 하여 기록 하기 때문에 LoadData. cpp 에\# include 를 포함 해 야 합 니 다.
     
터미널 에서 이 경로 로 들 어 갑 니 다. (CMake 버 전 주의)
mkdir build

cd build/

cmake ../

make

실행:./Matebug

좋은 웹페이지 즐겨찾기