質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.49%
Windows 7

Microsoft Windows 7は過去にリリースされたMicrosoft WindowsのOSであり、Windows8の1代前です。2009年の7月にリリースされ販売されました。Windows7の前はWindowsVistaで、その更に3年前にリリースされました。

OpenCV

OpenCV(オープンソースコンピュータービジョン)は、1999年にインテルが開発・公開したオープンソースのコンピュータビジョン向けのクロスプラットフォームライブラリです。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

1回答

411閲覧

pythonで、顔認識とグラフ生成を組み合わせる方法

Teagle333

総合スコア15

Windows 7

Microsoft Windows 7は過去にリリースされたMicrosoft WindowsのOSであり、Windows8の1代前です。2009年の7月にリリースされ販売されました。Windows7の前はWindowsVistaで、その更に3年前にリリースされました。

OpenCV

OpenCV(オープンソースコンピュータービジョン)は、1999年にインテルが開発・公開したオープンソースのコンピュータビジョン向けのクロスプラットフォームライブラリです。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2018/08/22 06:36

前提・実現したいこと

以下のコードを使って画像内に写っている人物の顔を認識させるとします。そのとき、顔と認識された領域にグラフ(散布図)を描画して、「顔」とグラフの点が重なったところにおけるグラフ配列のインデックスを取得したいです。どうすればこの処理が可能となるか、教えていただきたいです。

該当のソースコード

import cv2 import numpyas np from pylab import * import matplotlib.pyplot as plt def main(): # 画像の読み込み(RGB) img = cv2.imread("サンプル画像") # 画像サイズ変更 scale = 3 img = cv2.resize(img,(360*scale, 180*scale)) # カスケード型識別器の読み込み cascade = cv2.CascadeClassifier("haarcascade_frontalface_default.xml") # グレースケール変換 gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) # 顔領域の探索 face = cascade.detectMultiScale(gray, scaleFactor=1.1, minNeighbors=3, minSize=(30, 30)) # 顔領域を赤色の矩形で囲む for (x, y, w, h) in face: cv2.rectangle(img, (x, y), (x + w, y+h), (0,0,200), 3) # 画像をモニターに表示 cv2.namedWindow("Image", cv2.WINDOW_AUTOSIZE) # cv2.WINDOW_AUTOSIZE:デフォルト。ウィンドウ固定表示 # cv2.WINDOW_NORMAL:ウィンドウのサイズを変更可能にする cv2.imshow("Image", img) cv2.waitKey(0) cv2.destroyAllWindows() if __name__ == "__main__": main() # -------------------------------------------------------------------------------------------------------------- """ # 描画させたいグラフの例(配列や描画範囲の値は適当です) x = [-80,-65,-32,-13,-4,1,7,27,55,71,94] y = [-47,-32,-27,-18,-9,3,9,21,34,41,49] plt.plot(x, y, '-ro') plt.xlim(-100, 100) plt.ylim(-50,50) # 横軸をx, 縦軸をyとしてグラフを描画し、「顔」領域と重なる点のxy座標およびxy配列のインデックスを取得しようと思っています """ # --------------------------------------------------------------------------------------------------------------

補足情報(FW/ツールのバージョンなど)

バージョン:python3.6
開発環境:Winpython - Spyder
その他ライブラリ:OpenCV , matplotlib

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ポイントはグラフ座標とイメージ表示の画素をどのようにマッチングさせるかかと思います。

若干誤差が出そうだけどできなくはないと思うが、結構面倒じゃないかという印象。
やったことがないのですが、以下のページが参考になるのではないかと思います。

https://qiita.com/skotaro/items/1bc4db69b53210d839ec

投稿2018/08/24 06:27

t_obara

総合スコア5488

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.49%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問