Pixelgruppen

oLde

Mitglied
Hallo,
habe hier ein Bild und möchte nun alle Schwarzen Pixel Gruppieren.

Ich möchte alle pixel, die aneinander hängen in einer Gruppe haben und dann umrahmen.

Hier das Bild:
bd9ccaf9c757cfb7b2330bfb97aa2809.jpg


So meine vorstellung:
47e31fc498af64f9683f839e28162add.jpg


Ich hoffe man kann verstehen was ich versuche :)

Habe leider keinen ansatz, wie ich das machen kann daher wollte ich fragen, ob mir jemand helfen kann...
PHP:
<?php
header("content-type:image/jpeg");
function bild($image)
  {
  $infos    = getimagesize($image);
  $img      = imagecreatefromjpeg($image);
  $weiss    = imagecolorallocate($img, 255, 255, 255);
  $schwarz  = imagecolorallocate($img, 0, 0, 0);
  $rot      = imagecolorallocate($img, 255, 0, 0);
  $breite   = imagesx($img);
  $hoehe    = imagesy($img);
  
  for($y = 0; $y < $hoehe; $y++)
    {
    for($x = 0; $x < $breite; $x++)
      {

      }
    }
  imagejpeg($img);
  imagedestroy($img);
  }
  
bild("bild.jpeg");
?>
 
Ich hoffe für dich, dass du nicht vorhattest jedes Pixel einzeln abzusuchen, denn das frisst enorm viele Resourcen deines Servers. Ich an deiner Stelle würde erstmal dein Originalbild in ein reines Schwarzweißbild umwandeln und dann die Auflösung verringern. Dadurch hast du dann drei verschiedene Flächentypen: weiß (in diesem Gebiet gibt es keine schwarzen Pixel), grau (in diesem Gebiet gibt es sowohl weiße als auch schwarze Pixel) und schwarz (in diesem Gebiet gibt es nur schwarze Pixel). Nach diesem Verfahren erhöhst du dann schrittweise die Auflösung deines Bildes, wobei du die weißen Flächen ausschließt. Somit findest du erstmal die schwarzen Flächen und kannst sie in eine Matrix speichern. Und in dieser Matrix kannst du dann überprüfen, welche Pixel nebeneinander liegen und sie nach diesem Muster gruppieren. Am besten baust du deine Matrix so auf: $array[$x][$y]
 
Das mit dem Schwarz weiß habe ich ja... aber auch jeden pixel nachenander geguckt nach rgb farben und dann mit imagesetpixel() die einzelnen pixel schwarz oder weiß gefärbt.
Welche methode ist denn besser für die Server Resourcen?

Matrix? ich verstehe nicht so ganz wie das gehen soll :P
 
Also meine Methode ist besonders für große Bilder effizienter, da größere Bilder auch mehr Pixel haben und somit das absuchen nach schwarzen Pixeln länger dauert. Zur Matrix: sie speichert letztendlich deine schwarzen Pixel und wo sie sich befinden. Also eine Abstraktion deines Bildes für das Skript.
 
Irgendwie weiß ich nur jetzt nicht wie ich das genze umsetze.

Also ich muss das Bild schwarz/weiß machen, das habe ich nun mit zwei verschachtelten for schleifen gemacht, wie soll ich das nun einfacher machen?
 
Ich kann dir da momentan nicht weiterhelfen, da ich momentan Abiturient bin und die Zeit in andere Dinge investieren muss. Deshalb habe ich dir nur erstmal die theoretische Umsetzung genannt, denke aber, dass ich mir das morgen mal in PHP ansehen kann und dir dann meine Erkenntnisse nennen werde.
 
Das wäre sehr nett aber abi geht vor!

Gibt es vielleicht nen paar andere PHP coder, die hier gerade rum schwirren und vllt eine lösung für mein problem kennen?

mfg: oLde
 
Zurück