2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

株式会社ソニックムーブAdvent Calendar 2017

Day 3

線の上をなぞれてるかどうか判定する

Last updated at Posted at 2017-12-03

こんな画像があって、
no2.png

こんなふうになぞったときに、
no3.png

ちゃんとなぞれてるかどうか判定する定石とかあるの? という話が先日、社内で出まして。

定石があるかどうかわからないけど、こんな風にやったら多少ずれたりはみ出たりしてもロバストに判定できそうじゃないですか、というのを試しに実装したので記事にしておきます。定石などあれば通りすがりのエロい人がきっと教えてくれるはず。

概要

  • 手本となる画像となぞった画像(なぞった部分だけ)の差分を取る
  • それをぼかす
  • ぼかした画像に閾値以上のピクセルが残ってるかどうかを調べる

差分を取る

差分を取る画像は、上の最初の画像と次の画像です。
なお、画像の黒い部分はすべて透明になっているものとします。

no4.png

差分は次のようになります。(HTML Canvas の globalCompositeOperation を xor にして作成)
no5.png

ぼかす

ガウスぼかしを使いました。
no6.png

結果

例えば、アルファ値が178以上のピクセルだけ残すとすると、真っ黒になるのでちゃんとなぞれていると判定できます。
no7.png

こんな風にはみ出しすぎると、
no8.png

結果はこうなります。
no9.png

実際に動くやつ

ソースコード

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?