Zacznę od początku by było łatwiej zrozumieć:
mam skrypt który wykonuje różne operacje na obrazie binarnym (czarno-białym) jedną z operacji jakie muszę wykonać to zliczanie białych plam i do tego właśnie ma służyć poniższy skrypt ma on wykonać operacje na tablicy zawierającej współrzędne (x,y) białych pixeli na obrazie i pogrupować je. Ma on znaleźć zaczynając od pierwszej współrzędnej którą przekopiowuje do nowej tablei czy ma przylegających sąsiadów jeśli warunek zostanie spełniony to znaleziony pixel zostaje przypisany do tej nowej tablicy (w założeniu każda nowa tablica to nowa plama białych pixeli) znaleziony w ten sposób pixel jest usuwany z tablicy tak że zmniejszać się powinna zawartość głównej tablicy aż dojdzie do zera. Niestety przechodzi mi to tylko 1 raz i później się zapętla. I już nie wiem co z tym robić.
<?php function checkObj($x,$y) //sprawdza czy podane punkty maja przylegjacych sasiadow { if ($valueO[0] == $x or $valueO[0] == $x-1 or $valueO[0] == $x+1) { if ($valueO[1] == $y or $valueO[1] == $y-1 or $valueO[1] == $y+1) { $xy = true; } } if ($xy) { return true; } else { return false; } } ); $l = 0; while($ile1 >= 0){ //glowna petla która teoretycznie ma dzialac do puki nie zostanie calkowicie wyczy
szczona foreach($tablicaPol as $key => $value) //petla ktra ma przejsc po glownej tablicy { //W TYM MOMENCIE SIE ZAPETLA if ($key == 0) { array_push($obiekt[$l], $val1); //jeśli jest to pierwszy element w tablicy glownej to przezuc go do nowej tablicy
tak by był punktem startowym dla nowej } foreach ($obiekt[$l] as $keyO => $valueO) //petla po nowo utworzonej tablicy { if (checkObj($value[0], $value[1])) //wywolanie funkcji checkObj majacej sprawdzić czy któryś z obiektow w nowej tabli
cy jest przylegacym sasiadem do punku z pierwszej petli foreach { array_push($obiekt[$l], $val2); // jeśli funkcja zwrocila true to teoretycznie znalazla pasujące punkty a wiec prz
ezuca je do nowej tablicy } } } $l++; } ?>
wdzięczny będę za wszelką pomoc