• ベストアンサー

画像処理のラプラシアンフィルタについて

ラプラシアンフィルタを利用したエッジ抽出を現在行っているのですが (i,j)*4-(i,j-1)-(-i,j)-(i+1,j)-(i,j+1) このように計算した値を-の場合は0にして,255を超える場合は255にするという処理を行い それ以外は計算して出た値を使うので間違いはないでしょうか? エッジ抽出というと二値で出力されそうなイメージがあるのですが…

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

マイナスの場合も、255を超える場合も意味はあるわけですから、 「それを踏まえた上でクリップする」ならばよろしいかと。 ただ、マイナスクリップは、恐らく間違えてる気がします。 何に、どう使うのか判らないのでなんとも言えませんが。 エッジ抽出が2値、というのも恐らくマンガやアニメの線画を想像されたんでしょうが、一般にはエッジにも強度の概念があり、これを濃淡で表したものと考えれば納得いきませんか?

TpyLgW
質問者

お礼

アドバイスありがとうございます >一般にはエッジにも強度の概念があり、これを濃淡で表したものと考えれば納得いきませんか? 非常に納得がいきました. 一次微分を用いたもので閾値を使っていたのでどうも2値で出力されるという固定観念があったのですが,たしかに閾値を用いらなければ濃淡で表わされますね. 上記のことからクリップをした際の挙動がわかりました. そこで新たに出た疑問なのですが 一般的にエッジの強度を表す際に用いる色はどのようなものがあるのでしょうか? たとえば,グレースケール画像のラプラシアンフィルタについて言えば,取り得る値は-255*4~+255*4まであると思います これをどのように表現するのかということです. それは個人の好み,といわれてしまえば確かにそうなのですが,一般的にはどのような方法が用いられるのかが気になりました. また,利用目的は,画像処理の学習のためになればと思い行ってみました.

その他の回答 (2)

回答No.3

1です。 単にエッジの強度を見たいだけならば、絶対値を取ってから0~255クリップでもよいです。 この方が直感的にわかりやすいかもしれません。 色々試すことをオススメします。

回答No.2

1です。 >一般的にエッジの強度を表す際に用いる色はどのようなものがあるのでしょうか? たとえば,グレースケール画像のラプラシアンフィルタについて言えば,取り得る値は-255*4~+255*4まであると思います これをどのように表現するのかということです. 単に、エッジの分布を視覚化したい、ということであれば、 あくまでも一例ですが、-255*4~255*4まで存在するとして、実際に見たいレベルは恐らく-200~200くらいでしょうか。 あんまり強いエッジについてはクリップしちゃいます。 その上で0~255に収まるように一次変換すればよいです。 こういう操作を正規化と言います。厳密な表現ではないですが。 つまり、まずエッジ抽出値を→-255~255にクリップ。 さらに2で割って128を足す。これで0~255(くらい)に収まります。 なお、128を足していますのでエッジの無いところがグレイ(128)になります。 見たい感じと違ったら、クリップ範囲やゲインなどを調整すればよいのです。 また不明点があれば補足願います。

関連するQ&A

  • 画像のフィルタ処理について

    先鋭化フィルタ、エッジ強調、エッジ抽出、微分フィルタがありますが、いろいろな参考書を見ていますが、それぞれがどのような位置づけであるのかがいまいちわかりません。 ある本には、 先鋭化フィルタ・・・エッジ強調 微分フィルタ・・・・エッジ抽出 またある本には、 先鋭化フィルタ・・・ラプラシアンフィルタ、ボケマスク処理 エッジ強調・・・・・Sobelフィルタ、Prewittフィルタ となっていますが、Sobelフィルタ、Prewittフィルタはともに一次微分、ラプラシアンフィルタは二次微分であるので、それぞれの本を比べるとつじつまが合わない気がして、理解できません。 それぞれの各フィルタはどのように分類されるのが一般的なのでしょうか??よろしくお願いいたします。

  • 平滑化フィルタのエッジ処理

    平滑化フィルタのエッジの計算方法について教えてください。 たとえば3×3の以下のような平滑化フィルタを使ったとします。 1/9|1/9|1/9 1/9|1/9|1/9 1/9|1/9|1/9 このフィルタをN×Mの大きさのimageの全画素に処理をしたとすると、 エッジでない画素は、処理をしたい画素を含む周りの9個の画素それぞれに1/9をかけて、その和をとればいいと思うのですが、エッジの画素は、周りには画素が3個とか5個とかしかなく、上で定義したフィルタを適用できません。 エッジの画素にはどのような処理をすればいいのでしょうか? 御存じの方がいらしたら、教えてください。

  • 画像処理(画像のフィルタリング)についての質問。

    線形差分フィルタの2次空間微分線形フィルタについてなんですが 画像中の画素(i,j)の階調値をf(i,j)とあらわします。   ラプラシアンL=(∂の2乗/∂iの2乗)+(∂の2乗/∂jの2乗) f・L=(∂の2乗・f/∂iの2乗)+(∂の2乗・f/∂jの2乗)・・・(1) 8近傍ラプラシアンフィルタ    g(i,j)=f(i-1,j-1)+f(i,j-1)+f(i+1,j-1)+f(i-1,j)+f(i+1,j)+f(i-1,j+1)+f(i,j+1)+f(i+1,j+1)+(-8)・f(i,j) 質問なんですが、この式の導出の計算過程を教えてください。 (1)をどのように用いて計算するのかがわからないのです。 大学の図書館にいったり、netで検索したり して調べたのですが計算過程までは載ってなかったのです。 なので、質問させてもらいました。お願い致します。

  • メディアフィルタのアルゴリズムと基本処理の原理

    カラー画像のメディアフィルタ基本処理の原理とアルゴリズムについて教えてください。それと先鋭化処理とエッジ抽出など原理とアルゴリズムについても知っていたぜひ教えてください。

  • 画像のエッジ抽出について

    画像のエッジ抽出について 画像処理を学び始めたばかりのものです。 細菌や細胞などのエッジを、 C言語を使って抽出しようと思っているのですが ・Sobelフィルタ ・FFTによる低周波カット ・ラプラシアンフィルタなど の代表的なフィルターを組み合わせて使っても、綺麗にエッジが出ません。 二値化してエッジになるのには遠い状態です。 自分の撮った画像が悪かったのか・・と思いましたが、 フリーソフトのimageJで、エッジ抽出という処理をすると 綺麗に最近の形状が出ます。 これはどのようなアルゴリズムを使っているのでしょうか・・・ 教科書やネットを調べていても、上の3つ以外にフィルタがなさそうなので 途方に暮れています。。 お恥ずかしいですが、よろしくお願いいたします。。

  • 画像処理ソフトについて

    画像処理ソフトについて レポート課題をやってます。 1.明るさ コントラストの変換 2.濃淡の反転 3.ポスタリゼーション 4.平均化フィルター 5.エッジ抽出 の処理を行った後、箇条書きに”使用したソフトや処理の内容や処理前画像と処理後の画像”をレポートにします。どのソフトがおすすめでしょうか?

  • アクセスのフィルタについて

    アクセスのフォーム[フォーム1]にフィルタをかける処理についてですが、入力欄の一つ[データ1]に値が入力されていないものだけを抽出する処理をマクロで行いたいと思っておりますが、上手くいきません。(何も抽出されない) フィルタの命令文を下記で書いておりますが、間違っているでしょうか。 Forms![フォーム1]![データ1] = Null

  • 【画像処理】円を角張らせる

    お世話になります。 入力画像(2値)には○が描かれているとします。○については、多少いびつな形状のものを想定しています。 この○を角張らせるように修正した画像を出力したいと考えています。 具体的には、すでにちょっと角張っているような部位を求め、それを強めるといったイメージです。 ○部分のエッジ(のようなもの)を求めて、それを処理すればいいのでしょうか。 どのようなアルゴリズムになるのか、どなたかご教授お願いします。

  • エクセルマクロ フィルター

    宜しくお願い致します。 Set flt = Range("j6") j6の値が49727491で別シートからこの値を含むリストを オートフィルターで抽出したいですがリストの方の値が 237578-20080617-49727491となってます j6を含む形で抽出するにはどうしたい良いでしょうか? Workbooks("book1.csv").Sheets("book1").Range("A1").AutoFilter Field:=1, Criteria1:=flt

  • Execl2007フィルタにてデータの抽出ができたが、貼り付けると計算

    Execl2007フィルタにてデータの抽出ができたが、貼り付けると計算式が無くなって、値が入る。