offhttp://kerokero.org/wp/archives/2257で書いた防犯カメラ。off前提:・スキャン対象はコミックなどモノクロのもの・それをカラーで読み取る。・本が退色はあまりしてない前提。右側は、オリジナルの画像を赤で表示されるようにして、その上に検知したポイントを水色表示するようにしてみた。アイディアを流用すれば出来そうな気がする。とも書いたわけだけど、早速試して、色々調整してみた結果がこちら:あともう少し?いや、十分実用に耐えそうな気がしないでもない。やっていることは、以下のような処理。1,各ピクセルをHSV色空間に変換。2,評価するピクセルと、その周辺のピクセルのVの平均から、その部分がベタかどうかを判断。3,ベタならば、評価するピクセルのSを見て、色が付いているピクセルかどうかの判断し、色が付いているならば、マークをする。4,一度、1~3までの処理を画像全体に適用。5,3でマークしたピクセルを中心に、3×3の窓を開く。2×2のマークの状態を確認。これが縦ならば1、斜めならば0.5、横ならば0。評価不可(=4ピクセル全てがマークされているとか)とする。7,この2×2の4つの特徴値の平均をだして、対象ピクセルが縦線に近いのかを判断する。C#で、double精度で計算しているので、ちょっと時間がかかるのでその点では実用的では無い。整数演算になるように式を変えるなり、SIMDをがりがり書いて最適化したいところだな。白地の部分での縦線ノイズが見つかるように思えるかも知れないけど、実際にはこうなる:見ての通り、吹き出しの縦線とかがノイズとして検知されてしまいます。off過去に「自炊ノイズの自動検知方法って何かないかね?」って記事を書いているわけですが、やっぱり、縦線ノイズに悩まされるのでちょっとコンセプトモデルを書いてみた。結果はこう:左側が元画像。右側の白い部分が縦線として検知した部分。縦線ノイズじゃ無い部分も結構引っかかっているなぁ。pixel、その特徴が連続していたら、縦線ノイズと見なしているけど、このNを40にしてやっとこんな感じ。逆に言うと縦50pixel以上の長さが無いと検知できないと言うことにもなる。少ないドット数で検知できて欲しいところ。面倒だし、上記画像の計算だけで重いんだよね。アイディアを流用すれば出来そうな気がする。