私の目的は、さまざまな種類の植物を特徴付ける葉の静脈パターンを検出することです
私はすでに次のことを行っています:
元の画像:
適応しきい値処理後:
ただし、静脈はそれほど明確ではなく、歪んでいます。より良い出力を得る方法はありますか
編集:
色のしきい値処理を試みましたが、結果はまだ満足のいくものではありません。次の画像が表示されます
助けてください
私の目的は、さまざまな種類の植物を特徴付ける葉の静脈パターンを検出することです
私はすでに次のことを行っています:
元の画像:
適応しきい値処理後:
ただし、静脈はそれほど明確ではなく、歪んでいます。より良い出力を得る方法はありますか
編集:
色のしきい値処理を試みましたが、結果はまだ満足のいくものではありません。次の画像が表示されます
助けてください
そのJPEG画像が「ブロック」アーティファクトを与えるという事実は、投稿した例では、静脈の周りのほとんどの正方形領域に多くのノイズを発生させるため、非可逆圧縮されていない画像で作業するのが理想的です。それが不可能な場合は、画像をフィルタリングしてノイズの一部を除去してみてください。
抽出したい静脈は、背景、葉、影とは異なる色を持っているため、何らかの色ベースのしきい値を使用することをお勧めします。ここで役立つかもしれないいくつかのコードを含む最近の SO の質問がありました。その後、ある種の適応正規化は、しきい値を設定する前にコントラストを高めるのに役立ちます。
[編集]
しきい値処理は、やりたい中間ステップではないかもしれません。フィルタリングして jpeg アーティファクトを除去し、CMYK チャネルの計算 (より多くのシアンと黒) を実行してから、適応イコライゼーションを適用して、次のようにしました。その後、画像のグラデーションと最大値以外の抑制を使用して(おそらくサブピクセルで)エッジポイントを生成し、各ポイントでの明るさと静脈構造のプロパティ(ほとんどの場合接線で結合)を使用して、点を線に結合します。
過去に、ガウスのエッジ検出アルゴリズムの違いで良い経験をしました。これは基本的に次のように機能します。ガウスぼかしアルゴリズムを使用して画像を 2 回ぼかしますが、ぼかし半径は異なります。次に、両方の画像の差を計算します。
互いに下にある同じ色のピクセルは、同じぼやけた色を作成します。互いに下にある異なる色のピクセルは、ぼかし半径に応じたグラデーションを作成します。半径が大きいほど、グラデーションはより遠くまで伸びます。小さいものには当てはまりません。
つまり、基本的にこれはバンドパスフィルターです。選択した半径が小さすぎる場合は、2 つの「平行」線が作成されます。しかし、葉脈は画像の広がりに比べて小さいため、ほとんどの場合、葉脈が 1 本の線になる半径を見つけます。
ここに、加工した画像を追加しました。この写真で行った手順:
これは、すばやく作成された結果にすぎません。パラメータを最適化することで、より良いパラメータを取得できると思います。
これは、私が大学時代にニューラル ネットワークで行ったことのように思えます。ニューラル ネットワークは少し難しいので、そこには行きません。とにかく、パターンは 2D フーリエ変換の完璧な候補です! 可能なスキームは次のとおりです。
画像がほぼ同じ回転である限り、このような原始的な方法で最大 70% の認識が期待できます。画像の回転が同じでない場合は、SIFT を使用する必要がある場合があります。認識を向上させるには、隠れマルコフ モデルやニューラル ネットワークなどのよりインテリジェントなトレーニング セットが必要になります。真実は、この種の問題で良い結果を得るには、かなりの労力を要する可能性があるということです。
チェックアウト: https://theiszm.wordpress.com/2010/07/20/7-properties-of-the-2d-fourier-transform/