質問: cv::imread("../../image/lenna.png", 1); if(src_img.empty()) return -1; cv::Mat v_img, h_img, b_img; cv::flip(src_img, v_img, 0); // 水平軸で反転(垂直反転) cv::flip(src_img, h_img, 1); // 垂直軸で反転(水平反転) cv::flip(src_img, b_img, -1); // 両方の軸で反転 cv::namedWindow("vertical flip image", CV_WINDOW_AUTOSIZE|CV_WINDOW_FREERATIO); cv::namedWindow("horizontal flip image", CV_WINDOW_AUTOSIZE|CV_WINDOW_FREERATIO); cv::namedWindow("both flip image", CV_WINDOW_AUTOSIZE|CV_WINDOW_FREERATIO); cv::imshow("vertical flip image", v_img); cv::imshow("horizontal flip image", h_img); cv::imshow("both flip image", b_img); cv::waitKey(0); } ``` ### 試したこと 下記のページなどを参考にOpenCV2.4.0のインストールを行いました。 http://homemadegarbage.0t0.jp/raspberry-pi-opencv3-1-0 https://iwaki2009.blogspot.jp/2015/08/raspberry-pi-2-opencv-2411.html サンプルプログラムは下記のページのものを利用させていただきました。 http://opencv.jp/cookbook/opencv_img.html#image-flip
回答: rrsさん、 ``` g++ sample.cpp `pkg-config --cflags opencv` `pkg-config --libs opencv` ``` これでどうでしょうか エラーメッセージは、リンクエラーですね。 呼び出している関数が見つからなくて、リンクできなくて、実行ファイルが生成できない、ってやつです。 外部のライブラリを指定してあげる必要があります。 で、opencvでは、`pkg-config`を使うと、コンパイルに使うオプションがわかります。 `--cflags`で、ヘッダの読み込みPATH、`--libs`でリンクするライブラリのオプションを出力してくれるので、それを使います。 単に`pkg-config`を実行すると、私の環境では、それぞれ、以下のように出力されました。 ``` pi@raspberrypi:~/teratail.com-questions-79058 $ pkg-config --cflags opencv -I/usr/include/opencv pi@raspberrypi:~/teratail.com-questions-79058 $ pkg-config --libs opencv /usr/lib/arm-linux-gnueabihf/libopencv_calib3d.so -lopencv_calib3d /usr/lib/arm-linux-gnueabihf/libopencv_contrib.so -lopencv_contrib /usr/lib/arm-linux-gnueabihf/libopencv_core.so -lopencv_core /usr/lib/arm-linux-gnueabihf/libopencv_features2d.so -lopencv_features2d /usr/lib/arm-linux-gnueabihf/libopencv_flann.so -lopencv_flann /usr/lib/arm-linux-gnueabihf/libopencv_gpu.so -lopencv_gpu /usr/lib/arm-linux-gnueabihf/libopencv_highgui.so -lopencv_highgui /usr/lib/arm-linux-gnueabihf/libopencv_imgproc.so -lopencv_imgproc /usr/lib/arm-linux-gnueabihf/libopencv_legacy.so -lopencv_legacy /usr/lib/arm-linux-gnueabihf/libopencv_ml.so -lopencv_ml /usr/lib/arm-linux-gnueabihf/libopencv_objdetect.so -lopencv_objdetect /usr/lib/arm-linux-gnueabihf/libopencv_ocl.so -lopencv_ocl /usr/lib/arm-linux-gnueabihf/libopencv_photo.so -lopencv_photo /usr/lib/arm-linux-gnueabihf/libopencv_stitching.so -lopencv_stitching /usr/lib/arm-linux-gnueabihf/libopencv_superres.so -lopencv_superres /usr/lib/arm-linux-gnueabihf/libopencv_ts.so -lopencv_ts /usr/lib/arm-linux-gnueabihf/libopencv_video.so -lopencv_video /usr/lib/arm-linux-gnueabihf/libopencv_videostab.so -lopencv_videostab pi@raspberrypi:~/teratail.com-questions-79058 $ ``` これをコピペして、 `g++ sample.cpp -I/usr/include/opencv /usr/lib/arm-linux-gnueabihf/libopencv_calib3d.so -lopencv_calib3d /usr/lib/arm-linux-gnueabihf/libopencv_contrib.so -lopencv_contrib /usr/lib/arm-linux-gnueabihf/libopencv_core.so -lopencv_core /usr/lib/arm-linux-gnueabihf/libopencv_features2d.so -lopencv_features2d /usr/lib/arm-linux-gnueabihf/libopencv_flann.so -lopencv_flann /usr/lib/arm-linux-gnueabihf/libopencv_gpu.so -lopencv_gpu /usr/lib/arm-linux-gnueabihf/libopencv_highgui.so -lopencv_highgui /usr/lib/arm-linux-gnueabihf/libopencv_imgproc.so -lopencv_imgproc /usr/lib/arm-linux-gnueabihf/libopencv_legacy.so -lopencv_legacy /usr/lib/arm-linux-gnueabihf/libopencv_ml.so -lopencv_ml /usr/lib/arm-linux-gnueabihf/libopencv_objdetect.so -lopencv_objdetect /usr/lib/arm-linux-gnueabihf/libopencv_ocl.so -lopencv_ocl /usr/lib/arm-linux-gnueabihf/libopencv_photo.so -lopencv_photo /usr/lib/arm-linux-gnueabihf/libopencv_stitching.so -lopencv_stitching /usr/lib/arm-linux-gnueabihf/libopencv_superres.so -lopencv_superres /usr/lib/arm-linux-gnueabihf/libopencv_ts.so -lopencv_ts /usr/lib/arm-linux-gnueabihf/libopencv_video.so -lopencv_video /usr/lib/arm-linux-gnueabihf/libopencv_videostab.so -lopencv_videostab` としてコンパイルできます。 が、シェルで、` (backquote)でくくると、その実行結果の出力をコマンドに展開して、実行してくれるので、これを使っています。 (追記) 記事を参考にして、、ということは、OpenCVのビルド・インストールは、ご自身でされたのでしょうか? こちらでの検証は、apt-get にて、インストールしたものを使用しています。 #### 環境 * Raspberry Pi 2 * Raspbian: `2017-04-10-raspbian-jessie` * OpenCVのインストール: `sudo apt-get install libopencv-dev python-opencv` * OpenCV Version: 2.4.9.1