OpenCV 데이터 구조 (core) 와 기본 이미지 처리 알고리즘 (imgproc) 추출
3133 단어 OpenCV
./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
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Visual Studio 2017에서 OpenCV 템플릿 프로젝트 만들기・Windows 7 Professional 64bit ・Visual Studio 2017 Version 15.9.14 · OpenCV 3.4.1 OpenCV의 도입 방법 등은 아래를 참조하십시오. Visual Stu...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.