2012-02-16 10 views
0

チェックピクセル私はPHPでの画素パターンを確認することができますどのようにパターン

私は、ピクセルAがxxx値を持ち、次のピクセルBが別の値yyyを持つという条件として使用したいと考えています。

これは私が書いたものである:

$img = imagecreatefrompng("myimage.png"); 


$w = imagesx($img); 
$h = imagesy($img); 

for($y=0;$y<$h;$y++) { 
    for($x=0;$x<$w;$x++) { 
     $rgb = imagecolorat($img, $x, $y); 
     $r = ($rgb >> 16) & 0xFF; 
     $g = ($rgb >> 8) & 0xFF; 
     $b = $rgb & 0xFF;   
     echo "#".$r.$g.$b.","; 
     $pixel = $r.$g.$b; 
     if ($pixel == "481023" and $pixel+1??? 
    } 
    echo "<br />\r\n"; 
} 

私は、サイクルごとに2での$ xの値をインクリメントすることにより、全体のことをスピードアップすることができた場合にもお願いしたいと思います。あなたがしたい場合は、これを必要とする -

function getpixelat($img,$x,$y) { 
    $rgb = imagecolorat($img,$x,$y); 
    $r = dechex(($rgb >> 16) & 0xFF); 
    $g = dechex(($rgb >> 8) & 0xFF); 
    $b = dechex($rgb & 0xFF); 
    return $r.$g.$b; 
} 

お知らせdechex:あなたのような関数を定義したい場合があります

for($x=0;$x<$w;$x+2) { 
    //... 
    if ($pixel == "xxx") {//check the following pixel} 
    else if ($pixel == "yyy") {//check the previous pixel} 
} 
+0

は、あなたはそれを2画素毎に試したことがありますか?あなたのコードは動作しませんか? – DampeS8N

+0

2つの連続するピクセルをチェックするための最初の条件の設定方法がわかりません。 – KingBOB

+0

あなたは何を達成しようとしていますか? 2つの画像が同じか類似しているかどうか確認していますか?イメージ内のパターンや特定のシーケンスの存在を確認していますか? –

答えて

0

:私は2つのピクセルのパターンを持っているので、これは、多分私のようなものを使用することができますそれはHTMLカラーコードのように見える。そうでなければ、 "白"はffffffの代わりに255255255となり、あいまいな色になります。202020は濃い灰色(20,20,20)か、または赤色に少し赤みがあります(202,0,20)か?

あなたがこれをしたら、それは単純な問題のようになります。

for($y=0; $y<$h; $y++) { 
    for($x=0; $x<$w; $x++) { 
     $pixel = getpixelat($img,$x,$y); 
     if($pixel == "481023" && getpixelat($img,$x+1,$y) == "998877") { 
      // pattern! Do something here. 
      $x++; // increment X so we don't bother checking the next pixel again. 
     } 
    } 
} 
関連する問題