質問: "/usr/local/share/opencv4/haarcascades/haarcascade_frontalface_alt.xml"; cv::CascadeClassifier face_cascade; if (!face_cascade.load(face_cascade_name)) { std::cerr << "分類器の読み込みに失敗しました。" << std::endl; return -1; }; // 顔を検出 std::vector faces; face_cascade.detectMultiScale(input_image, faces); // 出力画像データを入れるオブジェクト // アルファチャンネル付きに対応するため CV_8UC4 を使う // CV_{U|S|F}C() // CV_8U: ビット深度=符号なし8ビット整数(0〜255) // C4: チャンネル数=4 cv::Mat output_image(input_image.size(), CV_8UC4); // 入力画像データを出力画像データにコピー input_image.copyTo(output_image); for (size_t i=0; i
回答: > > Pythonで読み込んだデータをC++でOpencvで画像処理をする > > > C++でやりたいことがOpenCVに用意されてる関数を実行することだけなら、Pythonでopencv-pythonまたはopencv-contrib-pythonをimportしてopencvの関数を実行するのと、上記は実質変わりません Pythonでopencvの関数を実行する際には、OpenCVの共有ライブラリ内の関数がPythonから呼び出されて実行されるのですが、その共有ライブラリはC++のOpenCVのコードをコンパイルして作られたものだからです もちろん、自分で画像処理をC++で書いて、それをPythonから呼び出すのであれば、A_kirisakiさんもお書きになっているように、ctypesとかcffiとかpybind11とか使って組み込む必要があります