基本的にここを読めばよい。 https://github.com/davidcarne/pcbre/wiki/install_fedora
このメモでは $HOME/local 以下にOpenCVをインストールする。
OpenCV3.0のソースをzipでまとめたものは、ホームディレクトリに保存してあると仮定する。
cd ~
mkdir ~/local
sudo dnf groupinstall 'Development Tools'
sudo dnf install gcc-c++
sudo dnf install python3 python3-pip python3-numpy python3-scipy spatialindex spatialindex-devel geos geos-devel potrace potrace-devel agg agg-devel freetype freetype-devel python3-Cython python3-mock python3-virtualenv python3-shapely python3-PyOpenGL qt qt-devel
sudo dnf install cmake libjpeg-turbo libjpeg-turbo-devel libpng libpng-devel libtiff libtiff-devel unzip wget
sudo dnf install gtk2-devel
unzip opencv-3.0
mkdir build
cd build
cmake -D CMAKE_BUILD_TYPE=RELEASE -D WITH_TBB=ON -D BUILD_opencv_python2=ON -D CMAKE_INSTALL_PREFIX:PATH=$HOME/local ~/opencv-3.0.0
make -j $(nproc)
make install
export PYTHONPATH=$PYTHONPATH:$HOME/local/lib/python2.7/site-packages/
/etc/ld.so.conf.d/opencv.conf を作成して以下を加える。
/home/<ユーザー名>/local/lib
ここで sudo ldconfig を実行すると、実行時に共有ライブラリを参照出来るようになる。
これでPython2からcv2をimport出来るようになる。
サンプルコード
#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <iostream>
#include <string>
int main() {
const std::string path( "HappyFish.jpg" );
cv::Mat image = cv::imread( path, cv::IMREAD_COLOR );
if( image.empty() ) {
std::cerr << "Could not open or find " << path << std::endl;
return -1;
}
cv::namedWindow( "Window", cv::WINDOW_AUTOSIZE );
cv::imshow( "Window", image );
cv::waitKey( 0 );
return 0;
}
TARGET := displayImage
SRC := main.cpp
CC := g++
OPENCVPATH := ${HOME}/local/lib
OPENCVLIBS := -lopencv_calib3d -lopencv_core -lopencv_features2d -lopencv_flann -lopencv_highgui -lopencv_imgcodecs -lopencv_imgproc -lopencv_ml -lopencv_objdetect -lopencv_photo -lopencv_shape -lopencv_stitching -lopencv_superres -lopencv_video -lopencv_videoio -lopencv_videostab
# OPENCVLIBS := -lopencv_core -lopencv_imgcodecs -lopencv_highgui
LIBS := -L$(OPENCVPATH) -Wl,--start-group $(OPENCVLIBS) -Wl,--end-group
# LIBS := -L$(OPENCVPATH) $(OPENCVLIBS)
CPPFLAGS := -I${HOME}/local/include
SRCS := $(shell ls *.cpp)
OBJS := $(SRCS:.cpp=.o)
$(TARGET) : $(OBJS)
$(CC) main.o $(LIBS) -o $@
%.o : %.cpp
$(CC) $(CPPFLAGS) $(LIBS) -c $^
clean:
rm -f $(OBJS)
rm -f $(TARGET)
#!/usr/bin/env python
# -*- conding:utf-8 -*-
import cv2
image = cv2.imread( 'HappyFish.jpg' )
cv2.namedWindow( 'Window', cv2.WINDOW_AUTOSIZE )
cv2.imshow( 'Window', image )
cv2.waitKey( 0 )