2019.12.03スポンサーリンク目次はじめにソースコードOpenCVの関数について簡単な説明cv::cvtColorcv::adaptiveThreshold実行してみた最後にはじめに今回は適応的二値化とk-means法を用いた減色によってアニメ風の画像を作ってみました。実行環境は次の通りです。CatalinaOpenCV:ver4.1.2ソースコードとりあえず使えればいいやって人はソースコードをコピペして環境に合わせてコンパイルをしてやれば動くはずです。このコードでは入力画像が実行ファイルと同じフォルダにある「test.jpg」で実行すると、結果が「output.jpg」として出力されます。img)」が画像を処理する関数で、引数に「cv::Mat」の画像を与えると「cv::Mat」で画像を返すので何かの途中に使う場合は関数をコピペして貰えば使えるはずです。過去のOpenCVについての記事で書いていないものについて簡単に説明していきます。減色部分については色々な要素が絡み合っているので、また別の記事で説明する予定です。cv::cvtColor画像の色空間を変更する関数です。次のようにして使います。cv::cvtColor(入力画像,出力画像,変換コード);変換コードについては一覧のようなものを見つけることができなかったので、今回利用しているのは次の通りです。cv::COLOR_BGR2GRAY:BGR>グレースケールcv::COLOR_GRAY2BGR:グレースケール>BGRcv::adaptiveThreshold適応的二値化処理を行う関数です。次のようにして使います。cv::adaptiveThreshold(入力画像,出力画像,最大値,適応的閾値処理のアルゴリズム,閾値処理の種類,計算に使う領域サイズ,定数);適応的閾値処理のアルゴリズムについては「ADAPTIVE_THRESH_MEAN_C」もしくは「ADAPTIVE_THRESH_GAUSSIAN_C」から選択できます。(周囲の画素の平均から定数を引くか、加重平均から定数を引くかの違い)閾値処理の種類は「THRESH_BINARY」もしくは「THRESH_BINARY_INV」から選択できます。説明は以前の記事を参照してください。計算に使う領域サイズとは周囲の画素をどこまで使うかで、これが大きいとエッジが太くなります。「3,5,...,2n-1」でなければいけません。定数とは計算する際に平均から引く定数のことです。これが小さいと多くのエッジを検出します。どちらかというとお土産屋さんにある絵葉書みたいな雰囲気になりました。エッジと減色は簡単に思いつくのですが、ここからどうやって本当にアニメっぽい画像にしていくかって感じですかね。改善の余地があるので、もしかしたら次回があるかもしれないです。見つかりませんでした。コメントをキャンセルメールアドレスが公開されることはありません。※サイト次回のコメントで使用するためブラウザーに自分の名前、メールアドレス、サイトを保存する。date*日本語が含まれない投稿は無視されますのでご注意ください。10年前のマウスを分解してみた2023.07.25【雑記】Excel,Word,PowerPointを読み取り専用で開くスクリプトを作った。【C++】簡単なソケット通信プログラムを作ってみた。無料webツール置き場。動作に問題があれば連絡ください。情報系に関連しないことはこちらで。不定期更新の気ままなブログです。情報学部生の気ままなブログ.ホーム検索トップサイドバータイトルとURLをコピーしました。