Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » Deltatester gesucht! ;-)

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
29.07.2006, 18:19 Uhr
Yadgar



High!

Erstmal vielen Dank an "stefanw" für den Hinweis auf den vertippten Operator... aber jetzt glaube ich fürs Erste wirklich am Ende meiner Kenntnisse angekommen zu sein! Ich habe es zwar hinbekommen, dass mein Programm ("Yadgar's Image Processor") tatsächlich Pixel bestimmter Farben zählt... aber leider scheint es so ziemlich vom Zufall abhängig zu sein, ob die Ergebnisse plausibel sind!

Konkret: Ich habe eine Reihe von insgesamt 422 PNG-Bildern, in denen ich meine fortwährende manuelle "Pixelarbeit" an einer Bitmap für ein 3D-Geländerelief abspeicherte. Es handelt sich dabei um eine digitalisierte topographische Karte, in der ich erst die Höhenlinien manuell nachzog und dann nach und nach die Zwischenräume auffüllte. Der Hintergrund (im eigentlichen GIMP-Arbeitsdokument als Kontrastebene zwischen der Kartenvorlage und meinen Pixeln eingezogen, beim Abspeichern habe ich das Bild dann jedesmal auf diese beiden oberen Ebenen reduziert) ist schwarz, von Arbeitsstunde zu Arbeitsstunde kommen folglich mehr andersfarbige Pixel (entsprechend des 16bit-Schemas in PoV-Ray kodiert) hinzu - eben diese nicht schwarzen Pixel zählt mein Programm.

Für die ersten 17 nach TGA konvertierten PNG-Files lief das auch alles prima, hier eine kleine Übersicht über die Pixelzahlen:

Tag Arbeitsstunde Pixel gesetzt (kumuliert)



04.10.2004 1 1799

05.10.2004 2 4300

06.10.2004 3 6968

08.10.2004 4 10320

09.10.2004 5 13323

6 13876

10.10.2004 7 16099

12.10.2004 8 19517

9 22363

13.10.2004 10 23290

14.10.2004 11 25424

15.10.2004 12 27880

16.10.2004 13 29386

19.10.2004 14 32862

20.10.2004 15 34623

16 36273

21.10.2004 17 36569

22.10.2004 18 13494 (???)

...und was ab Stunde 18 passiert begreife ich einfach nicht! Pro Arbeitsstunde (also pro neu abgespeichertem Bild) sollten zwischen 2000 und 4000 Pixel dazukommen, wie ich mittels eines anderen Grafikprogramms überprüfte, hat es auch keine Farbverfälschungen bei der schwarzen Hintergrundebene gegeben!

Von Stunde 18 an stimmt nichts mehr wirklich, auf späteren Bildern, wo mehrere hunderttausend Pixel gesetzt sind, erhalte ich Werte wie 380, anderswo dann wieder weit über eine Million, es kommt sogar vor, dass mehr Pixel angezeigt werden als das Bild überhaupt groß ist...

Die PNGs habe ich teilweise File für File mit GIMP nach TGA (unkomprimiert, 24bit) konvertiert, teilweise mit IrfanView (wo es keine speziellen Speicheroptionen für TGAs gibt), aber in beiden Fällen treten diese absurden Zahlenwerte auf...

Ich bin wirklich mit meinem Latein am Ende, ich weiß nicht mehr weiter! Kurioserweise sind die Zahlen plausibel, sobald ich ein frisch mit GIMP als TGA erstelltes Bild verwende - sobald ich aber den Inhalt eines PNG-Bildes in ein neues GIMP-Bild hineinkopiere, die Ebene verankere und das Bild dann als TGA abspeichere, stelle ich wieder dieselben Fehler fest!

Was mache ich jetzt?

Bis bald im Khyberspace!

Yadgar
--
Flagmaker - ein Programmier-Blog
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
29.07.2006, 22:18 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


Hallo, kann sein das sich entweder du oder die grafikprogramme nicht 100%ig an den bildstandard halten oder erweiterungen nutzen die du nicht behandelst. Evtl hast du auch einfach einen sign-fehler/endian-dreher drin.

Überprüf mal alle Variablen auf korrekte Größe und Sign (also ob die Werte die du einliesst auch in die Bereiche passen und ob signed/unsigned entsprechend korrekt ist)

Ansonsten kann es sein das einige Programme die Bilder in Big-Endian kodierten Files ablegen und andere mit Little-Endian, evtl erzeugt das die Kuriositäten.

Ohne genaueren Code wie du z.b die Images einliest kann man so nicht direkt einen Fehler finden.
--
class God : public ChuckNorris { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (ANSI-Standard) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: