バイオインフォマティクスの備忘録コンテンツへスキップバイオインフォマティクスの備忘録バイオインフォマティクスやPython等プログラミング関連の情報をメモしておきます。LLCからお願いいたします。OpenCVを使用して顔検出をするOpenCVを使うと、簡単に顔を検出することができます。cv2.CascadeClassifier('/usr/local/lib64/python3.7/site-packages/cv2/data/haarcascade_frontalface_default.xml')として指定していますが、分類器のファイルの場所は以下のようにして確認できます。cv2print(cv2.__path__)#['/usr/local/lib64/python3.7/site-packages/cv2']フォルダの中を確認してみますと、たくさんの分類器があることがわかります。今回はそのうち、「haarcascade_frontalface_default.xml」を使用していきます。/usr/local/lib64/python3.7/site-packages/cv2/datals#__init__.pyhaarcascade_frontalface_alt2.xmlhaarcascade_profileface.xml#__pycache__haarcascade_frontalface_alt_tree.xmlhaarcascade_righteye_2splits.xml#haarcascade_eye.xmlhaarcascade_frontalface_default.xmlhaarcascade_russian_plate_number.xml#haarcascade_eye_tree_eyeglasses.xmlhaarcascade_fullbody.xmlhaarcascade_smile.xml#haarcascade_frontalcatface.xmlhaarcascade_lefteye_2splits.xmlhaarcascade_upperbody.xml#haarcascade_frontalcatface_extended.xmlhaarcascade_licence_plate_rus_16stages.xml#haarcascade_frontalface_alt.xmlhaarcascade_lowerbody.xml分類器のパスを間違えていると、以下のようなエラーが出ます。結果は以下の通りです。足成からいただきました。元画像1顔検出結果1元画像2顔検出結果2元画像3顔検出結果3モザイク処理をする顔検出した箇所についてぼかしを入れることもできます。OpenCVを使用してエッジを検出する画像からエッジを検出する代表的な手法として、Cannyエッジ検出というものがあります。OpenCVを使用すると、簡単にCannyエッジ検出を行うことができます。threshold2)Cannyエッジ検出では、画像データに加えて、2つの引数threshold1とthreshold2が必須です。この2つの値はエッジ検出の際に以下のように使用されます。線が多すぎる印象です。dst)結果いい感じにエッジが検出できました。線が少ないでしょうか。dst)結果threshold1を上げると、線のつながりがなくなってしまいました。OpenCVのGaussianBlurを使用して画像にぼかしをかけるガウシアンフィルタは、画像の平滑化に使われるフィルタの1つです。ガウス分布を利用して、注目画素からの距離に応じて近傍の画素値に重みをかけます。インストールOpenCVをまだインストールしていない場合には以下のコマンドでインストールできます。dst)結果カーネルサイズを大きくすると、ぼかしの具合が強くなります。標準偏差を大きくしていくと、ぼかしの具合が強くなります。標準偏差に0を指定すると、カーネルサイズから標準偏差が自動計算されます。細かな調整が必要なければ、標準偏差は0にしてカネールサイズだけ変更すれば十分かと思います。Numpy入門NumpyはPythonの数値計算用ライブラリです。Numpyを使用することで、行列計算を高速に行うことができます。Numpy入門にコメントPythonの標準ライブラリdatetimeを使用して、日時の処理を行うPythonの標準ライブラリdatetimeを使用して、日時の処理を行います。'datetime.datetime'>print(dt_now.year)#2019print(dt_now.month)#1print(dt_now.day)#11print(dt_now.hour)#16print(dt_now.minute)#23print(dt_now.second)#39日時の時間差を取得deltatimeオブジェクト同士を引き算することで、timedeltaオブジェクトが得られます。strstrとintは結合できません。'str'intとstrの結合はできません。indent予期しないインデントが存在しています。literal‘や”が閉じられていません。「mylist」はappend属性を持っていません。'arg2'必要な引数’arg2’が指定されていません。given引数2つの関数に3つの引数を与えています。range指定したindexは存在しません。'd'指定したキーは存在しません。処理イテラブルオブジェクトとは、文字列、リスト、ディクショナリ、タプル、セットなどの要素を順番に取り出すことのできるオブジェクトのことです。リストから要素を順番に取り出して出力するプログラムは以下のように書けます。#1#2#3#4#5他の言語を先に学んだ方は、以下のように書きがちですが、これはPythonらしくありません。#1#2#3#4#5インデックスも同時に取り出したい場合には以下のようにします。e他の言語を先に学んだ方は、以下のように書きがちですが、これはPythonらしくありません。e以下のような書き方もPythonらしくないので、やめてください。eディクショナリの場合は、for文で回すと以下のようになります。#a#b#c#d#eディクショナリのキーが順番に取り出されてきます。ディクショナリの値も一緒に取り出したい場合には、以下のようにします。5他の言語を先に学んだ方は、以下のように書きがちですが、これはPythonらしくありません。