2017-09-05OpenCVとPythonを使って、間違い探しをやってみる。準備まずは、間違い探し用の画像を作る。イラスト01(初級)というWebページの画像をお借りする。この画像はA画像とB画像が縦に繋がっているので、上下に2分割する。2分割するついでに、OpenCVで扱うために、PNG形式に変換しておく。image02.pngこれで、iamge02-0.pngとimage02-1.pngという上下に分割されたファイルが作られて、準備完了である。上画像には「A」、下画像には「B」と、それぞれラベルが画像中に書き込まれているので、ファイル名もimage02A.pngとimage02B.pngに変更しておくことにする。しておいて、pythonで分割してもいい。detectionをしてみる。plt.show()当然のことであるが、上記の方法だと「合っている場所」をマークすることになるのだけれど、間違っている場所は5箇所だけなので、これじゃ良くない。間違い探し2そもそも間違い探しとは、なんであるか?というと、2枚の画像を重ね合わせた時に、それぞれに描かれている絵の輪郭が微妙に違うものではないか。画像Aと画像Bが微妙に位置がずれている可能性も考えて、画像Aを分割して作ったwindowが、画像Bに最もマッチする位置を探して、その差分画像を作ってみることにした。resultplt.imshow(result_window)これで、なんとなく差分の大きい位置があることが分かった。間違い探し2の続きということで、今度は差分画像の中で「差分がある位置」の座標を拾って、元画像に重畳表示するようにしてみる。具体的には、「差分のある位置」の輪郭を抽出することで座標値を拾って、その座標に基づいてもと画像に四角を描く。plt.show()絵が小さくて見づらいけれど、左上のAとかBとか描いてあるラベルの部分意外では、5箇所の間違い箇所をsuggestできているようだ。まとめOpenCVを使って、差分画像を作ることで、間違い探しクイズを解ける可能性がある事が分かった。