Das programmieren ist herzlichst einfach:
Code: Alles auswählen
type
PRGBRec = ^TRGBReg;
TRGBReg = packed record
B, G, R: byte;
end;
var
line: PRGBRec;
b: TBitmap;
x, y: integer;
begin
// Bitmap erstellen und konfigurieren
b := TBitmap.Create;
try
b.SetSize(32, 32);
b.PixelFormat := pf24bit;
// Bitmap zeichnen
b.BeginUpdate;
try
// Jede Zeile
for y := 0 to b.Height - 1 do
begin
// Zeile von der Bitmap holen
line := b.ScanLine[y];
// jeder Pixel in der Zeile
for x := 0 to b.Width - 1 do
begin
// Farbe zuweise (hier rot)
line[x].R := 255;
line[x].G := 0;
line[x].B := 0;
end;
end;
finally
// fertig mit bearbeiten
b.EndUpdate;
end;
// in datei speichern
b.SaveToFile('Bitmap.bmp');
finally
b.Free; // Speicher freigeben
end;
Mit dem Zufälligen generieren meine ich, sagen wir mal du hast ein Bild von einem Berg. Wenn du jetzt einen Pixel veränderst, z.B. komplett schwarz färbst der vorher blau war, ist es auf dem bild immernoch ein Berg. Wenn du jetzt also eine AI hast die Berge erkennen kann, wird diese bei einem Pixel unterschied wahrscheinlich immernoch es als berg erkennen.
Für jedes Motiv gibt es also so eine Art "Hülle" von Bildern die sich nicht stark genug unterscheiden um etwas anderes darzustellen, aber dennoch kleine Unterschiede haben. Andersrum, ein Pixelhaufen ohne bedeutung wird warscheinlich durch einen Pixel unterschied nicht zu einem Pixelhaufen mit bedeutung.
Wenn du jetzt Systematisch alle bilder generieren würdest, also immer das vorherige bild nehmen, einen Pixel ändern und neu versuchen, wirst du jedes Bild dieser Hülle abklappern. Um das zu vermeiden könntest du die Bilder komplett zufällig generieren. Somit sind bei jedem Durchlauf die Chancen ein neues Bild zu treffen genauso groß wie die chancen ein bereits schon bekanntes bild zu treffen (unter der sehr naiven annahme das die Hülle jedes bildes gleich groß wäre).
Dann kannst du sogar noch was machen. Wenn man sich reale Bilder ansieht stellt man schnell fest, dass meisten Pixel an Position x, y fast die selbe Farbe hat wie seine nachbarn. Ein Pixel der sich komplett von allen umgebenden Pixeln unterscheidet ist sehr selten und eher eine Störung als ein tatsächliches Bildfeature. Es muss allerdings trozdem noch harte Kanten geben, kanten sind aber meist auch zusammenhängend.
Wenn man das alles berücksichtigt kann man wahrscheinlich sogar einen recht effizienten allgorithmus schreiben der Pseudobilder generieren kann. Wenn man lustig ist kann man da theoretisch beliebig viel Zeit und motivation reinstecken.