さくらインターネットサーバーにOpenCV 2.1.1を入れる
cmakeをインストール
%cd ~/local/src %wget http://www.cmake.org/files/v2.8/cmake-2.8.2.tar.gz %tar xvf cmake-2.8.2.tar.gz %cd cmake-2.8.2 %./bootstrap --prefix=$HOME/local %make %make install
OpenCVのインストール
%mkdir OpenCV-2.1.1 %cd OpenCV-2.1.1 %svn export https://code.ros.org/svn/opencv/trunk %cd .. %mkdir opencv.bulid %ccmake ../OpenCV-2.1.1/trunk/opencv
設定項目は下記の通りにしました.(ccmakeに入ったあと,c(continue)を押下したあと,t(toggle advanced mode)を押下して,アドバンスドモードで設定)
BUILD_EXAMPLES OFF BUILD_LATEX_DOCS OFF BUILD_NEW_PYTHON_SUPPORT ON BUILD_PACKAGE OFF BUILD_SHARED_LIBS ON BUILD_TESTS ON BZIP2_LIBRARIES /usr/lib/libbz2.so CMAKE_AR /usr/bin/ar CMAKE_BACKWARDS_COMPATIBILITY 2.4 CMAKE_BUILD_TYPE RELEASE CMAKE_COLOR_MAKEFILE ON CMAKE_CONFIGURATION_TYPES Debug;Release CMAKE_CXX_COMPILER /usr/bin/c++ CMAKE_CXX_FLAGS CMAKE_CXX_FLAGS_DEBUG -g CMAKE_CXX_FLAGS_RELEASE -O3 -DNDEBUG CMAKE_C_COMPILER /usr/bin/gcc CMAKE_C_FLAGS CMAKE_C_FLAGS_DEBUG -g CMAKE_C_FLAGS_RELEASE -O3 -DNDEBUG CMAKE_EXE_LINKER_FLAGS CMAKE_EXE_LINKER_FLAGS_DEBUG CMAKE_EXE_LINKER_FLAGS_RELEASE CMAKE_INSTALL_PREFIX /home/USERNAME/local CMAKE_LINKER /usr/bin/ld CMAKE_MAKE_PROGRAM /usr/local/bin/gmake CMAKE_MODULE_LINKER_FLAGS CMAKE_MODULE_LINKER_FLAGS_DEBU CMAKE_MODULE_LINKER_FLAGS_RELE CMAKE_NM /usr/bin/nm CMAKE_OBJCOPY /usr/bin/objcopy CMAKE_OBJDUMP /usr/bin/objdump CMAKE_RANLIB /usr/bin/ranlib CMAKE_SHARED_LINKER_FLAGS CMAKE_SHARED_LINKER_FLAGS_DEBU CMAKE_SHARED_LINKER_FLAGS_RELE CMAKE_SKIP_RPATH OFF CMAKE_STRIP /usr/bin/strip CMAKE_USE_RELATIVE_PATHS OFF CMAKE_VERBOSE_MAKEFILE OFF DOXYGEN_DOT_EXECUTABLE DOXYGEN_DOT_EXECUTABLE-NOTFOUND DOXYGEN_EXECUTABLE DOXYGEN_EXECUTABLE-NOTFOUND EIGEN2_INCLUDE_PATH EIGEN2_INCLUDE_PATH-NOTFOUND ENABLE_PROFILING OFF ENABLE_SSE ON ENABLE_SSE2 ON ENABLE_SSE3 OFF ENABLE_SSSE3 OFF EXECUTABLE_OUTPUT_PATH /home/USERNAME/local/src/opencv.bulid/bin INSTALL_C_EXAMPLES OFF INSTALL_PYTHON_EXAMPLES OFF IPP_PATH IPP_PATH-NOTFOUND JASPER_INCLUDE_DIR /usr/local/include JASPER_LIBRARY /usr/local/lib/libjasper.so JPEG_INCLUDE_DIR /usr/local/include JPEG_LIBRARY /usr/local/lib/libjpeg.so LIBRARY_OUTPUT_PATH /home/USERNAME/local/src/opencv.bulid/lib OPENCV_BUILD_3RDPARTY_LIBS OFF OPENCV_CONFIG_FILE_INCLUDE_DIR /home/USERNAME/local/src/opencv.bulid OPENCV_EXTRA_C_FLAGS OPENCV_EXTRA_C_FLAGS_DEBUG OPENCV_EXTRA_C_FLAGS_RELEASE OPENCV_EXTRA_EXE_LINKER_FLAGS OPENCV_EXTRA_EXE_LINKER_FLAGS_ OPENCV_EXTRA_EXE_LINKER_FLAGS_ OPENCV_WARNINGS_ARE_ERRORS OFF OPENEXR_HALF_LIBRARY OPENEXR_HALF_LIBRARY-NOTFOUND OPENEXR_IEX_LIBRARY OPENEXR_IEX_LIBRARY-NOTFOUND OPENEXR_ILMIMF_LIBRARY OPENEXR_ILMIMF_LIBRARY-NOTFOUND OPENEXR_IMATH_LIBRARY OPENEXR_IMATH_LIBRARY-NOTFOUND OPENEXR_INCLUDE_PATH OPENEXR_INCLUDE_PATH-NOTFOUND PKG_CONFIG_EXECUTABLE /usr/local/bin/pkg-config PNG_LIBRARY /usr/local/lib/libpng.so PNG_PNG_INCLUDE_DIR /usr/local/include PVAPI_INCLUDE_PATH PVAPI_INCLUDE_PATH-NOTFOUND PYTHON_EXECUTABLE /usr/local/bin/python2.6 PYTHON_INCLUDE_DIR /usr/local/include/python2.6 PYTHON_LIBRARY /usr/local/lib/libpython2.6.so SVNVERSION_PATH /home/USERNAME/local/bin/svnversion TIFF_INCLUDE_DIR /usr/local/include TIFF_LIBRARY /usr/local/lib/libtiff.so USE_FAST_MATH ON USE_IPP OFF USE_O3 ON USE_OMIT_FRAME_POINTER ON WITH_1394 OFF WITH_CUDA OFF WITH_EIGEN2 ON WITH_FFMPEG OFF WITH_GSTREAMER ON WITH_GTK ON WITH_JASPER ON WITH_JPEG ON WITH_OPENEXR ON WITH_PNG ON WITH_PVAPI ON WITH_QT OFF WITH_QT_OPENGL OFF WITH_TBB OFF WITH_TIFF ON WITH_UNICAP OFF WITH_V4L ON WITH_XINE OFF ZLIB_INCLUDE_DIR /usr/include ZLIB_LIBRARY /usr/lib/libz.so
c(continue)押下後にg(generate and exit)を押してコンパイル設定完了.
ffmpegなんかも入れてみましたが,エラーしたのでOFFにしてます.
ソースをちょっとなおす.
%vi ../OpenCV-2.1.1/trunk/opencv/modules/highgui/src/grfmt_png.cpp
50行目くらい.
#ifdef HAVE_LIBPNG_PNG_H #include <png.h> #else #include <png.h> #endif #include "grfmt_png.hpp"
%make
多分一回コンパイルに失敗するので,もう一回
%make
すると,コンパイル完了.
%make install
で,インストールされるはず.
OpenCVを使ったプログラムをコンパイルする
環境整備
%setenv PKG_CONFIG_PATH /home/USERNAME/local/lib/pkgconfig
これは,~/.cshrcに書いておけばよし.
%pkg-config --cflags --libs opencv -I/home/USERNAME/local/include/opencv -I/home/USERNAME/local/include -L/home/USERNAME/local/lib -lopencv_core -lopencv_imgproc -lopencv_highgui -lopencv_ml -lopencv_video -lopencv_features2d -lopencv_calib3d -lopencv_objdetect -lopencv_contrib -lopencv_legacy
となれば準備完了.
プログラムのコンパイル
test.cpp – 2値化するプログラム
#include <cv.h>
#include <highgui.h>
int
main (int argc, char **argv)
{
IplImage *src_img = 0, *dst_img;
if (argc >= 2)
src_img = cvLoadImage (argv[1], CV_LOAD_IMAGE_GRAYSCALE);
if (src_img == 0)
return -1;
dst_img = cvCreateImage (cvGetSize (src_img), IPL_DEPTH_8U, 1);
cvSmooth (src_img, src_img, CV_GAUSSIAN, 5);
cvThreshold (src_img, dst_img, 0, 255, CV_THRESH_BINARY | CV_THRESH_OTSU);
cvSaveImage( argv[2], dst_img);
cvReleaseImage (&src_img);
cvReleaseImage (&dst_img);
return 0;
}
コンパイル.
%g++ -v -o test.o test.cpp `pkg-config --cflags --libs opencv ImageMagick++` Using built-in specs. Target: i386-undermydesk-freebsd Configured with: FreeBSD/i386 system compiler Thread model: posix gcc version 4.2.1 20070719 [FreeBSD] /usr/libexec/cc1plus -quiet -v -I/home/USERNAME/local/include/opencv -I/home/USERNAME/local/include -I/usr/local/include/ImageMagick -D_LONGLONG test2.cpp -quiet -dumpbase test2.cpp -auxbase test2 -version -o /var/tmp//cc80L5hQ.s ignoring duplicate directory "/usr/include" #include "..." search starts here: #include <...> search starts here: /home/USERNAME/local/include/opencv /home/USERNAME/local/include /usr/local/include/ImageMagick /usr/include/c++/4.2 /usr/include/c++/4.2/backward /usr/include End of search list. GNU C++ version 4.2.1 20070719 [FreeBSD] (i386-undermydesk-freebsd) compiled by GNU C version 4.2.1 20070719 [FreeBSD]. GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072 Compiler executable checksum: 32d3ad82329e6a2b39fccea1ee418a45 /usr/bin/as -o /var/tmp//ccHTucYA.o /var/tmp//cc80L5hQ.s /usr/bin/ld --eh-frame-hdr -V -dynamic-linker /libexec/ld-elf.so.1 -o test.o /usr/lib/crt1.o /usr/lib/crti.o /usr/lib/crtbegin.o -L/home/USERNAME/local/lib -L/usr/local/lib -L/usr/lib -L/usr/lib /var/tmp//ccHTucYA.o -lopencv_core -lopencv_imgproc -lopencv_highgui -lopencv_ml -lopencv_video -lopencv_features2d -lopencv_calib3d -lopencv_objdetect -lopencv_contrib -lopencv_legacy -lMagick++ -lMagickCore -lstdc++ -lm -lgcc_s -lgcc -lc -lgcc_s -lgcc /usr/lib/crtend.o /usr/lib/crtn.o GNU ld version 2.15 [FreeBSD] 2004-05-23 Supported emulations: elf_i386_fbsd %./test.o test1.jpg test2.jpg
test.oができていればOK.