https://www.anaconda.com/download/, 次の場所から目的に合うファイルをダウンロードします。 Help us understand the problem. メールアドレスが公開されることはありません。 * が付いている欄は必須項目です. はじめに; 結果出力について; 基本的な画像処理; おわりに; はじめに. 折角なら、OCRのように文字の抜き取りなんかもしてみたいですね。, 今更ながらのことでも、つたないことでも。 Kazuki Room ~電子工作・ロボット・3Dプリンター・RaspberryPi~ 以前の記事で、複数フレームにわたる連写画像を使ってノイズ除去のコードを書いてみましたが、OpenCVにもその機能が備わっているようです。今回はその効果を確認するとともに、以前書いた記事との比較をしてみます。, 画像のノイズ除去手法として、Non-local Means Filterというものが知られています。これは画像の中からちょっと遠いところも含めて、画像の類似性を探して、ノイズを除去する手法です。小さなウィンドウをちょいと遠くからずらして、相関が高いところの画像とそのウィンドウとのフィルタ合成をするものです。, 動画のような複数フレームモノであれば、隣接するフレーム間では同一座標付近に似たような特徴が出るだろう。ということで、時間軸方向に似たテクスチャを探して、ノイズ除去することが可能です。以前の記事, これでは、その特徴を使ってノイズ除去を大真面目にやってみました。iPhoneのような、小さいセンサを使ったノイズが乗りまくった画像をソースにしても、それなりに拡大にも耐えられるような画像ができました。, Non-Local MeansはOpenCVにも実装されています。簡単に調べたところ、, と複数用意されています。今回の場合には、複数枚のカラー画像なので、fastNlMeansDenoisingColoredMultiを試すことになります。, 基本的な原理は以前の記事でやっていることと同じなのだと思います。たぶん。チュートリアルには明確に、Labに色変換した後に、Lとabに対して独立にノイズ除去を行う。とあるので、このあたりのアプローチは違います。が、隣接画像間で近いところを見てノイズを取っていると思います。その関数の引数ですが、, 1.画像列(リスト)2.ベースとなる画像(フレーム番号)3.ノイズ除去に使用するフレーム数(なぜか奇数である必要があります)4.h : フィルタ強度パラメータ。値が大きいとノイズをより消せるが、画像のティテールも失う。(デフォルト3)5.hForColorComponents : カラー用のフィルタ強度パラメータ6.templateWindowSize : テンプレートウィンドウの大きさ。奇数(7が推奨)7.searchWindowSize : 探索ウィンドウの大きさ。奇数(21が推奨), ココの引用です。ココでは、Cのコードを説明していますが、Pythonでもおそらく同じだろうと思います。これもまたおそらくですが、hがLabのL(明るさ)に対するパラメータで、hForColorComponentsがab(色)に対するパラメータと予想しています。, 6のtemplateWindowSizeは、探索する窓の大きさかなと思います。7のsearchWindowSizeは探す範囲かな?推奨値で用いる場合、21×21の範囲を7×7の窓で探すということなのではないかと予想します。この場合、上下左右に7画素ぶれていてもよいよ。と言ってくれているのかな。, こんな感じかな?今回は推奨値(7, 21)で試してみることとします。コードとしては、こんな感じ、多分使い方あってると思うんだけどなぁ。, めちゃくちゃ処理に時間がかかります。どっかでハングったかな?と思うくらいでした。おそらく真面目に7×7のウィンドウ単位で隣接フレームのマッチングを取っているのではないかと予想されます。前回の記事で試した手法は、32×32のブロック単位のマッチングなので、計算量はかなり有利です。このマッチング、回転は考慮されているのかな?そのあたりは不明です。, そしてその結果ですが、ちょっとイマイチな気がします。完全にテクスチャが消えている箇所があるかと思えば、ノイズがイマイチ取り切れてない箇所があったりします。, 左がノイズ除去前、右が今回のfastNlMeansDenoisingColoredMultiの結果、中央が以前の記事で試した手法。右の結果では、洋服のスジや縫い目、表面のけば立った感じが完全になまされています。しかしエッジ付近でのノイズ除去がイマイチ効いていません。真ん中のサンプルがその両立ができていて、一番きれいに見えます。, もういっちょ拡大してみます。被写体は隅っこに写っていた子供のおもちゃの人形の家です。一番右は、左にある窓枠のノイズが取り切れていない上に、屋根がつるつるになっています。パラメータがイマイチなのかもしれませんが、うまく両立できていないように見えます。, ちょっと気になったので、OpenCVのNlMeansによるノイズ除去と、自前のNlMeans的なノイズ除去を比べてみました。 サンプルが限定的なので一概に有利不利は言えませんが、連写した7枚の静止画をソースとして試した場合、処理時間、画質ともに自前の方が結果がよかったです。パラメータを最適化するには処理がかかりすぎて、あまり真面目に試せていませんが、少しノイズ除去の処理が強すぎる感じがします。何か使い方を間違っているかもしれませんね…。, いったん自前の処理の方が今回の目的には適している。ということにして満足して寝ることにします。, 連写写真でいろいろ遊んできましたが、スマホのような画質の悪いカメラで、「はい、チーズ」で止まった状態を撮る場合には、10枚程度の連写がいいかな。, 次回のコメントで使用するためブラウザーに自分の名前、メールアドレス、サイトを保存する。, とある電気メーカーのエンジニアをしています。ソフト屋さんです。ものを作るのが好きです。 chainerで線画着色をwebサービスにして公開してみた - Qiita これスゴいよね。 着色してみようと思ったけど、手元に線画なかったのでシンプルな方法で線画抽出してみた。 といってもここのコメントのやり方をコードにしただけ。 OpenCV(Python)でやった。 こんな感じ。 「Proceed ([y]|n)?」 と表示されるので y を選択 4. (第1回)Python + OpenCV で遊んでみる(導入編) OpenCV. 以下のコマンドを入力する, 3. By 門前. 返信を残す Want to join the discussion? Python(パイソン)を中々使う機会が無く、OpenCV(オープンシーブイ)も気にはなりつつ使う機会が無く。 Why not register and get more from Qiita? インストールが完了するとスタートメニューに仮想環境のAnacondaが追加されています。 6. img は3次元配列となり、1次元目がY軸、2次元目がX軸、3次元目がその1ピクセルのカラー情報であるBGRとなっているようです。(RGBの順ではない) Feel free to contribute! 2019年6月 / 0 コメント / カテゴリ: IT PORT / 作成者: feissport.com ~ (第3回)Python + OpenCV で遊んでみる(顔検出編) ~ を公開しました。 0 返信 前回は、Python(Anaconda)とOpenCVをインストールし、開発環境を構築しました。 今回は、実際にOpenCVを利用して画像処理を行っていこうと思います。, cv2.imshowメソッドにて画像表示ウィンドウを表示します。 imshowメソッドのみだと表示すると同時に終了してしまうため、キー入力による待機処理を使用します。, Jupyter Notebookとはプログラムを実行し、実行結果を記録出来るツールです。Anacondaをインストールすると同梱されており、Pythonに限らず多種の言語を使用出来ます。, JupyterNotebookで画像をインライン表示する場合は、以下の2通りがあります。, 今回はOpenCVでどのような画像処理が出来るのかを試すため、手軽なJupyter Notebook上でmatplotlibを利用した方法で表示していこうと思います。, OpenCVで出来る基本的な画像処理を試していきます。 今回、利用した画像は以下のポストの写真です。(※記事投稿のため、実際の画像よりも縮小されております。画像処理後の結果も縮小して表示しております。), まずはグレースケール表示です。いわゆる白黒写真です。明暗のみの情報になるので画像処理ではよく使用されます。, 白と黒の2色のみで構成される画像に変換します。cv2.thresholdメソッドを使用して、グレースケール画像から2値化します。, ある平面を別の平面に射影する変換を行います。 よく書類などをカメラで撮影して、正面からの平面に変換しているのをよく見かけますね。 ここでは、numpyというPythonの数値計算ライブラリを使用します。, 画像を平滑化させるガウシアンフィルタを用いて、画像にぼかし処理をいれます。 ガウシアンフィルタにはカーネルサイズおよび標準偏差を調整して、ぼかし具合を調整します。 どちらのパラメータも数値が大きくなるとぼかし具合が強くなります。 標準偏差に0を指定すると、カーネルサイズ(正の奇数を指定)から自動計算されます。, 画像のモザイク処理は、画像を一旦縮小し、元の大きさに拡大することでモザイク処理を施すことが出来ます。(実際は縮小時に画素の平均化等のアルゴリズムが発生している), 今回はOpenCVでどのような画像処理が出来るのか、基本的な処理を見ていきました。次回は、顔検出分類器を使用して顔検出をして遊んでいきたいと思います。. ・Python 目次. 約 9 分. ~ (最終回)Python + OpenCVで遊んでみる(OCR編) ~ を公開しました。 0 返信. ・OpenCV4.1.2.30 Feel free to contribute! 2019年6月 . コメントを残す コメントをキャンセル. ここのところPythonを勉強していて、基本的なところはさらったので「さて何をやるか」と考えてopenCVで画像認識かなーとAnaconda Navigatorでインストールしようとしたらできなかったので、どうやってインストールしたかをまとめておきます。 新しくやったことはメモ代わりにでも記事にしていければと思っています。. (第5回)Python + OpenCV で遊んでみる(YOLOを用いた物体検出編). 環境はWindows7 64bitでやります。, 以前にAnaconda(アナコンダ)でPython環境をインストールしていたようです。 opencv_python‑3.3.1‑cp36‑cp36m‑win_amd64.whl, cv2.imreadで指定したファイルを、指定した形式で読み取り、NumPyの配列で返してくれるようです。 AIや機械学習がトレンドとなっており、Deep Learningのアルゴリズムや学習方法の情報収集をしていくなかで、一つ疑問に思いました。「あれ?この学習した結果ってどうやって利用するんだろ?」機械学習で学習させた結果の利用には、画像の判別や画像の認識などの例が多く、画像処理が出来ればおもしろいことが出来そうだということで、本テーマではOpenCVを使って遊んでいこうと思います。, OpenCVはインテルが開発・公開しているオープンソースの画像処理・解析ライブラリです。オープンソースの画像処理ライブラリの中では、デファクトスタンダードになっており、多くの分野で使用されています。対応言語は、C/C++、Java、Pythonが対応となっていますが、.Net Framework(C#,VB)向けのラッパーライブラリも有志によって多く作成されていますので、.Netユーザでも利用出来ます。 今回はPythonを使用してOpenCVを利用したいと思います。, その他、Pythonの標準/外部ライブラリを使用するので、適時紹介していきたいと思います。, 今回は、Python導入に統合環境であるAnacondaをインストールします。インストール方法については、別記事((第3回)pythonでAIプログラムを作成)の記載と同じなため、そちらを参考にインストールします。, まずは今回使用するPythonの仮想環境を作成します。Anaconda上で複数の仮想環境を切り替えることができるため、別バージョンのPythonの環境や、特定のライブラリをインストールした環境等を簡単に切り替えて使用することが出来ます。, 1. http://www.lfd.uci.edu/~gohlke/pythonlibs/#opencv, OpenCV 3(core + contrib)をWindows & Python 3の環境にインストール&OpenCV 2とOpenCV 3の違い&簡単な動作チェック - Qiita, you can read useful information later efficiently. 趣味の「カメラ」「バイク」をキャンプに絡めて、何かモノを作り上げることを主目的に記載をしています。 ・VisualStudio2019 Anaconda Promptを管理者権限で開く 2. The Jupyter Notebook is a web-based interactive computing platform. コメントを残す コメントをキャンセル. 以前の記事で、複数フレームにわたる連写画像を使ってノイズ除去のコードを書いてみましたが、OpenCVにもその機能が備わっているようです。今回はその効果を確認するとともに、以前書いた記事との比較をしてみます。複数画像によるNon-Local ・USBカメラ(リアルタイム顔認識の場合のみ), まずはVisualStudioを起動して「新規作成」→「プロジェクト」を選択します。, 検索ボックスに「python」と入力し、「pythonアプリケーション」を選択して「次へ」を押下します。, 今回のプロジェクト名は「Python_opencv_face_detect」としておきます。よければ「作成」を押下してプロジェクトを作成します。, プロジェクトができたらソリューションエクスプローラーの「Python環境」を右クリックして「すべてのPython環境を表示」を選択します。, 「Python 3.7」を選択します。パッケージで「PyPi」を選択して「opencv-python」で検索します。今回は「opencv-python(4.1.2.30)」を選択してインストールします。, カスケードXMLを取得してきたいので、別途OpenCV4.2.0をインストールしてきます。ダウンロードが完了したらダブルクリックでインストーラーを起動します。, 展開したフォルダから以下のカスケードXMLをコピーし、Pythonのプロジェクトフォルダ内に貼り付けます。, プロジェクトフォルダ内の「data\src\」に入力ファイル「lena.png」を用意します。, 実行が完了すると「data\dst\」に「opencv_face_detect_rectangle.jpg」というファイルが出力されます。, 次はリアルタイム顔認識を試していきたいと思います。まずはUSBカメラをUSBポートに接続しておきます。, Pythonプログラムを以下のように変更し、USBカメラからの映像で顔認識するようにします。「cv2.VideoCapture(1)」の「1」については、「1」でカメラを認識できない場合は「0」を設定します。, USBカメラを人に向けてみると撮影した映像を取り込んで顔認識されることが分かると思います。, 以上、今回は「OpenCVとPythonとVisualStudioで顔認識してみる」という内容について紹介させていただきました。, KAZUKIです。 2019年6月 / 0 コメント / カテゴリ: IT PORT / 作成者: feissport.com ~ (第4回)Python + OpenCV で遊んでみる(リアルタイム顔検知編) ~ を公開しました。 0 返信 By 門前. 2019年6月 . メールアドレスが公開されることはありません。 * が付いている欄は必須項目です. コマンドプロンプトにて試したら次のようになりました。, なので、Pythonのインストールからと言う方はAnacondaのサイトからダウンロード&インストールを行なってください。 Python(パイソン)を中々使う機会が無く、OpenCV(オープンシーブイ)も気にはなりつつ使う機会が無く。 そんな折、ちょっとやってみようと思ったので、今からやるにあたっての導入やはじめの一歩など。 環境はWindows7 64bitでやります。 Pythonの導入 目次前回の振り返り実行環境Anacondaとはインストール手順プログラムの実行ライブラリを使うには前回の振り返り 前回はAIの機械学習モデルの機械学習法についてお伝えしました。 今回はAnaconda環境のインストール・プログラムの実行方法について解説します。 https:... (第5回)Python + OpenCV で遊んでみる(YOLOを用いた物体検出編). インストールが開始されます。 5. はじめに. 約 4 分. 物理的なモノに加えて、勉強がてらプログラムの作成も行って行きたいです。. モノづくりが好きで、ブログでは電子工作やゴミ回収ロボットのことを書いています。, ゴミ回収ロボットを一緒に開発してくれる方がいらっしゃいましたらお問い合わせフォームからご連絡ください。, Kazuki Room ~電子工作・ロボット・3Dプリンター・RaspberryPi~, 'data/dst/opencv_face_detect_rectangle.jpg', Kazuki Room ~電子工作・ロボット・3Dプリンター・RaspberryPi~ by, 解決!「Arduino ‘read’ was not declared in this scope」というコンパイルエラーについて, Blenderと3Dプリンターを使用してミニ四駆を作ってみた!【3Dプリンターで出力可能な3Dデータを作ります!】, RaspberryPiとMJPG-Streamerでライブストリーミングをする方法, 保護中: C++でNon-local Means Filterを自作して画像のノイズを除去する, 保護中: pythonによる効果的な適応的二値化処理(adaptiveThreshold)について. 今回はOpenCVとPythonとVisualStudioで顔認識を試してみましたのでその方法についてご紹介します。 ソースはこちらのサイトを参考にさせていただきました。 Python, OpenCVで顔検出と瞳検出(顔認識、 … cv2.waitkey(0)は、その状態で待機すると言う事でしょう。, まだ、よくわかってない状態ですが、いざやってみると本当に簡単で驚きます。 (第2回)Python + OpenCV で遊んでみる(基本画像処理編) OpenCV. ソースはこちらのサイトを参考にさせていただきました。, ・Windows10 64bit そんな折、ちょっとやってみようと思ったので、今からやるにあたっての導入やはじめの一歩など。 http://www.lfd.uci.edu/~gohlke/pythonlibs/#opencv, 今回は次のファイルをダウンロードした。実際のバージョン番号などはその時の最新でいいでしょう。 By following users and tags, you can catch up information on technical fields that you are interested in as a whole, By "stocking" the articles you like, you can search right away. インストールされている仮想環境の確認や、仮想環境の削除は以下のコマンドを使用します。, 次にOpenCVをインストールします。 1. pipにてOpenCVをインストール, 2. pipにてOpenCVの拡張モジュールであるOpenCV Contribをインストールします。 (商用利用の場合は権利に注意すること), 今回はPython + OpenCVを利用するために開発環境の構築までを行いました。次回はOpenCVを利用して、どのような画像処理が出来るか試してみたいと思います。. ファイルを読込む際に、cv2.IMREAD_COLOR の所を cv2.IMREAD_GRAYSCALEとすれば、グレースケールのため、2次元配列が返ってくるようです。, その後、画像の切り抜き、というより配列の範囲指定なのでしょうが、開始位置:終了位置のように指定すれば、その配列の範囲を抜き取れるようですね。簡単ですね。, 最後は、cv2.imshowでウィンドウのタイトルの指定と、NumPyの配列を渡せばウィンドウ表示してくれるようです。 電子工作やロボットの情報をメインに発信していきます!, 今回はOpenCVとPythonとVisualStudioで顔認識を試してみましたのでその方法についてご紹介します。 ~ (第5回)Python + OpenCV で遊んでみる(YOLOを用いた物体検出編) ~ を公開しました。 0 返信. 今まで、趣味で動画編集などをするにあたって画像加工をGIMPのスクリプトでやっていましたが、少し本腰入れてこっちで作る方がはるかに簡単で色々と出来そうですね。 返信を残す Want to join the discussion? ~ (最終回)Python + OpenCVで遊んでみる(OCR編) ~ 2019年11月 / 0 コメント / カテゴリ: IT PORT / 作成者: feissport.com ~ (最終回)Python + OpenCVで遊んでみる(OCR編) ~ を公開しました。 はじめに; OpenCVとは; 開発環境; Python(Anaconda)のインストール; 仮想環境の作成; OpenCVのインストール; おわりに; はじめに. What is going on with this article? 目次. 2019年6月 / 0 コメント / カテゴリ: IT PORT / 作成者: feissport.com ~ (第4回)Python + OpenCV で遊んでみる(リアルタイム顔検知編) ~ を公開しました。 0 返信 The notebook combines live code, equations, narrative text, visualizations, interactive dashboards and other media.