.-- --

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
スポンサー広告 comment(-) trackback(-)
.08 2013

画像処理 〜Sobelでエッジ抽出

こんにちわ。Uedaです。

前回、前々回で、画像白黒したり、画像をぼかしながら画素を直接いじったりしてみたのは、エッジ抽出や、特徴点抽出の勉強をしたかったためです!

今回はSobelを使ったエッジ抽出をやってみました。

参考サイト
http://www.mis.med.akita-u.ac.jp/~kata/image/sobelprew.html

ある画素Piの周りの勾配を調べ、勾配が大きかったらPiはエッジだねってことで白くしましょってな感じで理解。

コード


std::vector> pixels;
for (y = 1; y < height - 1; y++) {
std::vector rowpixel;
for (x = 1; x < width - 1; x++) {

///////////////////////////////////////////////////////////////////////////////////
// ある画素P(x, y)の周りの画素を取得

UInt8 *g11, *g12, *g13, *g21, *g22, *g23, *g31, *g32, *g33;
g11 = buffer + (y-1) * bytesPerRow + (x-1)*4; g12 = buffer + (y-1) * bytesPerRow + (x )*4; g13 = buffer + (y-1) * bytesPerRow + (x+1)*4;
g21 = buffer + (y ) * bytesPerRow + (x-1)*4; g22 = buffer + (y ) * bytesPerRow + (x )*4; g23 = buffer + (y ) * bytesPerRow + (x+1)*4;
g31 = buffer + (y+1) * bytesPerRow + (x-1)*4; g32 = buffer + (y+1) * bytesPerRow + (x )*4; g33 = buffer + (y+1) * bytesPerRow + (x+1)*4;

///////////////////////////////////////////////////////////////////////////////////
// Sobelのフィルタ処理

UInt8 gHs = - *g11 + *g13
- *g21 * 2.0 + *g23 * 2.0
- *g31 + *g33;
UInt8 gVs = - *g11 - *g12 * 2.0 - *g13
+ *g31 + *g32 * 2.0 + *g33;

UInt8 g = sqrt(gHs*gHs + gVs*gVs);

// UInt8 brightness = (*g11 + *g12 + *g13 + *g21 + *g22 + *g23 + *g31 + *g32 + *g33) / 9;

///////////////////////////////////////////////////////////////////////////////////
// ある画素P(x, y)の値の決定

rowpixel.push_back(g);
}
pixels.push_back(rowpixel);
}

///////////////////////////////////////////////////////////////////////////////////
// 表示
for (y = 1; y < pixels.size() - 1; y++)
{
std::vector rowpixel = pixels.at(y);
for (x = 1; x < rowpixel.size() - 1; x++)
{
UInt8* tmp;
tmp = buffer + y * bytesPerRow + x * 4;

UInt8 p = rowpixel.at(x);

// NSLog(@"%d", brightness);

*(tmp + 0) = p;
*(tmp + 1) = p;
*(tmp + 2) = p;
}
}


検証

sobel.png


前回使ったビリヤードの画像と見比べて下さい!見事、エッジ抽出できましたー!
(ただ、すんごい遅いです... OpenCVってどうやって高速化してるんだろー
関連記事
スポンサーサイト

Comment

Post comment

  • comment
  • secret
  • 管理者にだけ表示を許可する

Trackback

trackbackURL:http://appteam.blog114.fc2.com/tb.php/257-f895f4c0

ブログ内検索

関連リンク

製品情報

最新記事

カテゴリ

プロフィール

neoxneo



NEXT-SYSTEM iOS Developers Blog


  • UTO:
    カナダ版iPhone4Sは、マナーモードでシャッター音がならない…


  • Ehara:
    ...


  • Hayate:
    ...


  • Tasaki:
    Developer登録完了...したのはいいけど


  • Ueda:
    ...



リンク

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。