2012-05-24 3 views
4

안드로이드 ndk 빌드 라이브러리의 크기를 최소화하고자합니다.OpenCv 라이브러리 크기를 최소화하는 방법은 무엇입니까?

저는 안드로이드 용으로 미리 빌드 된 OpenCv 라이브러리로 시작했으며, 현재 lib의 크기는 약 3MB입니다. 크기를 최소화하려면 어떻게해야합니까?

필자는 파일 읽기/쓰기 기능, png 인 코드/디코드, jpeg 디코더 및 resize 및 cvtColor와 같은 OpenCv의 일반적인 이미지 조작 기능 만 필요합니다.

모든 포인터가 대단히 감사하겠습니다!

+0

사용하지 않을 라이브러리의 구성 요소를 제거하여 라이브러리를 최소화하려고합니까? 그렇다면 라이브러리를 스트립하는 동안 여러 빌드 사이클을 사용하여 상당히 길게 그려진 프로세스입니다. – Samveen

+0

글쎄, 빌드 할 때 플래그를 지정할 수있는 것처럼 보였다. ffmpeg에서 사용하는 방법과 비슷합니다. – Jona

+0

필요하지 않을 것이라고 확신하는 라이브러리 소스의 섹션을 수동으로 주석 처리 할 수도 있습니다. 이는 이전에 언급 한 여러 빌드 사이클을 유발합니다. 그러나 그것은 조심성있는 길이다. 앞에서 언급 한 것처럼 플래그를 대신 사용하는 것이 좋습니다. – Samveen

답변

2

OpenCV 라이브러리에는 여러 개의 모듈이 있습니다. 'highgui'및 'gpu'와 같은 모듈을 제외하고 필요 이상으로 필요하지 않을 수도 있습니다. 어쨌든, 나는 당신이 무엇을 필요로하는지 잘 모르겠습니다. 읽기, 쓰기, 디코딩, 변환 등의 다른 작은 라이브러리를 대신 사용해야합니다. 허프 (Hough) 변환 또는 거리 맵과 같은 컴퓨터 비전 작업이 아닙니다.

cimg btw를 고려해보십시오. 단순히 cimg 클래스의 일부로 점점 더 많은 기능을 정의하기 때문에 하나를 제거하십시오.

행운을 빈다.

+1

모듈을 비활성화하는 방법을 자세히 설명해 주시겠습니까? –

+0

소스에서 opencv를 빌드하는 경우 apt-get과 같은 다른 패키지 관리자를 사용하는 경우 설치하는 대신 cmake를 사용하여 포함 할 모듈을 구성 할 수 있습니다. 1 년이 넘었으므로 세부 사항을 잊어 버렸습니다. 그러나, 나는 cmake-gui가 나에게 사용자 친화적 인 인터페이스를 제공한다는 것을 발견했다. 그럼에도 불구하고, 자신 만의 라이브러리를 컴파일하려면 리눅스 흉부가 필요합니다. 시작하려면 http://docs.opencv.org/doc/tutorials/introduction/linux_install/linux_install.html을 참조하십시오. 킬로바이트를 저장할 필요가 없다면 배포판의 패키지 관리자를 사용하십시오. – Herbert

+0

모든 모듈 목록은 http://docs.opencv.org/modules/core/doc/intro.html에서 찾을 수 있습니다. 기억 하듯이, 더 이국적인 이미지 형식 등을로드하기 위해 라이브러리를 비활성화 할 수도 있습니다. 다음은 cmake-gui를 사용하여 opencv를 구성하는 사람의 예입니다 : http://www.techunited.nl/wiki/index.php?title=How_to_Install_OpenCV. 행운을 빕니다! – Herbert

2

당신은 아마도 지금까지 Jona로 프로젝트를 진행했을 것입니다. 그러나 cmake-gui를 사용하지 않는 사람들은 명령 행 예제를 좋아할 것입니다. 당신이 CCALIB 모듈을하지 않은 경우 즉, 당신은 다음과 같이 만들 수있다 :

cmake -DBUILD_OPENCV_CCALIB = OFF [다른 cmake 플래그] ../

을 당신이하는 모든 모듈 제외를 커버하지 않을 수 있습니다 플래그를 구축 조작 그러나, 그것은 아마도 시작하기에 좋은 장소 일 것입니다. 플래그 옵션 목록을 보려면 CMakeLists.txt 파일 (opencv 소스 디렉토리의 맨 위)을여십시오.

플래그를 켜거나 끄어도 수동으로 주석 처리 된 코드만큼 빌드가 손상되지 않습니다.

관련 문제