表題のとおりなのですが、androidでカメラで取り込んだ動画をアニメ風にしたいとおもいました。
そこでWebでしらべたところOpenCVをみつけました。色々調べたところ
lang
1 cv::cvtColor(inputFrame, bgr, cv::COLOR_BGRA2BGR); 2 cv::pyrMeanShiftFiltering(bgr.clone(), bgr, 15, 40); 3 cv::cvtColor(bgr, gray, cv::COLOR_BGR2GRAY); 4 cv::Canny(gray, edges, 150, 150); 5 cv::cvtColor(edges, edgesBgr, cv::COLOR_GRAY2BGR); 6 bgr = bgr - edgesBgr; 7 cv::cvtColor(bgr, outputFrame, cv::COLOR_BGR2BGRA);
みたいなコードが良さげなので、これをつかってやろうとおもいました。
android+JNI+OpenCVでカメラをとりこんで見たのですが、負荷がかかるのか
カクカクしてしまいます。
負荷がかかるのをしらべたところ
cv::pyrMeanShiftFiltering(bgr.clone(), bgr, 15, 40);
に原因があるのは分りましたが、この負荷を下げるために
パラメータの数値を下げればいいですがあまりアニメ効果がなくなるのでしたくありません。
他の選択肢として解像度を下げるのが有効なのですが、これも場当たり的(ユーザー環境に依存する)のでしたくありません。
他の選択肢として私が考えつくのは
①OpenCVをやめて他のライブラリを探す。
②FPSを変えてみる。
③MATをやめてOpenCV+OpenCLにすると高速化するらしいからそれ
④違うルーチンを探す。
⑤QTでCで最初から開発
⑥あきらめてモルゲッソヨでも見に行く
ぐらいなのですが
ほかにいい解決策をしっている人はいませんか?
また②って本当に良くなりますか?海外情報を調べるとFPSについて調節せよみたいなことをかいて
あるから書いてみたのですがその常識感がないので分かりません。
また良いSDKとか知っているひとはおしえてくださいませんか?
よろしくお願いいたします。
あなたの回答
tips
プレビュー