Hallo, ich brauche mal einen Tipp von euch, ich habe ein Graustufen Bild in einer n x n Matrix vorliegen. Das Bild möchte ich um den Faktor 2 verkleinern. Wie komme ich nun auf den Wert eines Pixels? Angenommen ich habe einen Block aus vier Pixeln 1 2 3 4 Kann ich den neuen Wert von 1 mit (1 + 2 + 3 + 4) / 4 berechnen, oder?
Wikipedia ist dein Freund: http://de.wikipedia.org/wiki/Skalierung_%28Rastergrafik%29 http://de.wikipedia.org/wiki/Rekonstruktionsfilter
Mathias Braun schrieb: > verkleinern. Wie komme ich nun auf den Wert eines Pixels? > > Angenommen ich habe einen Block aus vier Pixeln > > 1 2 > > 3 4 > > Kann ich den neuen Wert von 1 mit (1 + 2 + 3 + 4) / 4 berechnen, oder? Wer will dich daran hindern? Du kannst mit den Pixeln machen, was immer du willst. Du kannst auch für jedes enstehende Pixel grundsätzlich immer nur das 1-Pixel aus dem Originalblock nehmen. Du kannst auch im Original einen 4*4 Block nehmen und von dem den Mittelwert nehmen, arithmetisches Mittel, geometrisches Mittel. Du kannst ... Niemand hindert dich daran.
> Kann ich den neuen Wert von 1 mit (1 + 2 + 3 + 4) / 4 berechnen, oder? Das Ergebnis soll dann das Pixel mit dem neuen Graustufenwert sein? im Prinzip ja, nur ist das rechentechnisch viel zu aufwendig. Warum das Rad neu erfinden? > ich habe ein Graustufen Bild in > einer n x n Matrix vorliegen. Das Bild möchte ich um den Faktor 2 > verkleinern. copy and paste, umtransformieren in jpeg und dann: http://scaleyourimage.com/ fertig.
S. B. schrieb: > im Prinzip ja, nur ist das rechentechnisch viel zu aufwendig. Eine Addition soll rechentechnisch aufwändiger sein, als die Matrix wieder in ein JPEG Bild zu verwandeln, es durchs Netz zu schicken, es empfangen und wieder in eine Matrix zurück verwandeln??
> Eine Addition soll rechentechnisch aufwändiger sein, als die Matrix > wieder in ein JPEG Bild zu verwandeln, es durchs Netz zu schicken, es > empfangen und wieder in eine Matrix zurück verwandeln? Du hast offenbar vergessen, daß Du diese Berechnung jeweils pro "neuen" Pixel durchführen mußt! Aus wieviel Pixeln besteht denn Deine Matrix überhaupt? Die Anzahl Deiner Graustufen und die Größe Deiner n*n Matrix kenne ich nicht. Bitteschön, wenn Du meinst das es einfacher ist, mach es doch - es hindert Dich ja keiner daran.
Wahrscheinlich gibt es sogar noch einen besseren, schnelleren Algorithmus, je nachdem wie hoch Deine Qualitätsanforderungen, etc. sind?
S. B. schrieb: > Wahrscheinlich gibt es sogar noch einen besseren, schnelleren > Algorithmus, je nachdem wie hoch Deine Qualitätsanforderungen, etc. > sind? Ich halte es für relativ unwahrscheinlich, dass es einen Algorithmus gibt, der schneller als O(n²) arbeitet. Auch wenn ein Bild 100.000x100.000 Pixel => 10 Gigapixel groß ist, wird ein CPU Kern das Ding innerhalb von einer Sekunde berechnen. Außerdem hast du ebenso einen Aufwand von O(n²) für das Umwandeln der Matrix in ein Bild und wieder zurück. Zuzüglich der Berechnung auf dem fremden Server.
> Ich halte es für relativ unwahrscheinlich, dass es einen Algorithmus > gibt, der schneller als O(n²) arbeitet. Das ist dann aber nur die Zeit für den Algorithmus für die Pixelneuberechnung, jetzt kommen noch die anderen Zeiten für die Anordnung, Ausgabe, usw. hinzu und das pro Bild. Programmiere es Dir und mache einen Zeitvergleich - nur so wirst Du herausfinden, ob alles so klappt wie Du denkst. Klar, Programmierung ist die bessere Lösung in Bezug auf die Zeit. Widf hat ja schon auf Wiki verwiesen - Bildverarbeitung ist ein umfangreiches Gebiet genau wie Sortieralgorithmen. Ich habe lediglich eine nichtkommerzielle Variante aufgezeigt, die im Prinzip jeder durchführen kann. Wenn Du es besser kannst, setze es um.
S. B. schrieb: > nur ist das rechentechnisch viel zu aufwendig Kannst du das mal bitte näher beschreiben. Deine Behauptungen bisher überzeugen mich noch nicht. Karl heinz Buchegger schrieb: > Du kannst auch für jedes enstehende Pixel grundsätzlich immer nur das > 1-Pixel aus dem Originalblock nehmen. Es ist durchaus klar, dass es bei einer Verkleinerung eines Bildes zu einem Datenverlusst kommt und das ursprüngliche Bild verfälscht wird. Bei deiner beschriebenen Methode ist die verfälschung so stark, dass ich deine Lösung in einer Klausur evtl. sogar als falsch werten würde. Ich möchte dir auch sagen wieso: Nehmen wir mal ein Schachbrett, wobei jedes Feld genau einem Pixel entspricht. Nach deiner Methode wäre das verkleinerte Bild entweder komplett Schwarz oder Weiß. Das entspricht jedoch nicht der Realität. Mit der Lösung von Mathias wäre es Grau - besser aber immer noch nicht ganz richtig. Wenn man es richtig machen will, dann muss man das Bild zunächst einmal über entsprechende Gradientenfilter jagen um eine Gewichtung der einzelnen Pixel zu bekommen. Nach so einer Verkleinerung entsteht dann ein z.T. verrauscht aussehendes Bild, das jedoch viel mehr details enthält, als nach euren Methoden.
Dimitri Roschkowski schrieb: > Es ist durchaus klar, dass es bei einer Verkleinerung eines Bildes zu > einem Datenverlusst kommt und das ursprüngliche Bild verfälscht wird. > Bei deiner beschriebenen Methode ist die verfälschung so stark, dass ich > deine Lösung in einer Klausur evtl. sogar als falsch werten würde. Ich > möchte dir auch sagen wieso: Da hast mich misverstanden. Meine Antwort war zu lesen als: Wenn du der Ansicht bist, das ein arithmetisches Mittel zur Verkleinerung taugt, dann nimm sie. Wenn du denkst das ist nicht das was du willst, dann musst du dir was anderes überlegen. Vielleicht will er bilinear Filter oder ein Gaussfilter oder eine andere Filterthematik benutzen. Aber eines ist sicher: Es gibt kein richtig und kein falsch. Was in deiner Situation funktioniert, musst du selber wissen. > Bei deiner beschriebenen Methode ist die verfälschung so stark, dass ich > deine Lösung in einer Klausur evtl Das kommt ja dann wohl darauf an, um welche Vorlesung es sich handelt und ob in der Vorlesung Filtertechniken besprochen wurden :-) Und an S.B > nur ist das rechentechnisch viel zu aufwendig Was soll denn das für ein Algorithmus sein? "Lade das Bild auf einen Server und hol dir von dort das Ergebnis ab"
> Und an S.B > Was soll denn das für ein Algorithmus sein? > "Lade das Bild auf einen Server und hol dir von dort das Ergebnis ab" gar keiner - die Fragestellung war nicht primär der Algorithmus, sondern "Bilder verkleinern"! Also eine Frage für Leute, die zu schnellen Ergebnissen kommen möchten - so habe ich das zumindest verstanden - das ist eine "nichtkommerzielle" primitive Lösung des Problems. Bisweilen sind primitive Lösungen auch gar nicht so schlecht - sie führen zu einem Ergebnis. Eine Zeitmessung ist hier offenbar jedem zu aufwändig ?! Weiterhin: Der Fragesteller hatte ja nach der Richtigkeit seines Algorithmuses gefragt, habe ich auch beantwortet. Bitteschön, jetzt liegt es an ihm das zu programmieren. Sein Algorithmus kann funktionieren, ich finde ihn zeitaufwendig ... das kommt naürlich auf die Definitionen (Pixelgröße, Abtastrate) und insbeondere Ausgangsvorraussetzungen an - diese kennt aber nur der Fragesteller und gibt sie uns nur scheibchenweise bekannt! Es gibt auch andere Algorithmen. Offenbar scheint dieser Rechenweg ja nicht immer so gut zu funktionieren? Es kommen ja auch noch andere Faktoren wie Bildein- /ausgabefunktion, usw. hinzu.(da wären wir dann wieder bei der Zeitmessung, siehe oben). Nicht umsonst gibt es kommerzielle Programme. Ich mache doch nicht Nachhilfeunterricht für einen Prof. und seinen Diplomanden ?! Oder was soll das hier sein bzw. werden? > Nehmen wir mal ein Schachbrett, wobei jedes Feld genau einem Pixel > entspricht. Nach deiner Methode wäre das verkleinerte Bild entweder > komplett Schwarz oder Weiß. Das entspricht jedoch nicht der Realität. > Mit der Lösung von Mathias wäre es Grau so, so - macht Euch mal mit den Grundlagen vertraut - wie ist denn überhaupt ein Pixel definiert ?! http://de.wikipedia.org/wiki/Pixel
S. B. schrieb: > Eine Zeitmessung ist hier offenbar jedem zu aufwändig ?! Offenbar können hier alle anderen schon direkt abschätzen, was schneller sein wird. Und es wird nicht das sein, was du denkst. S. B. schrieb: > Sein Algorithmus kann funktionieren, ich finde ihn zeitaufwendig ... Begründe das mal bitte. Wie kann man deiner Meinung nach schneller zu einem Ergebnis kommen, ohne dabei massivst an Bildinformationen zu verlieren? S. B. schrieb: > Ich mache doch nicht Nachhilfeunterricht für einen Prof. und seinen > Diplomanden ?! > Oder was soll das hier sein bzw. werden? Das wird von dir auch nicht verlangt. Du hast aber eine These aufgestellt, jetzt musst du auch akzeptieren, dass deine These angegriffen wird.
S. B. schrieb: > gar keiner - die Fragestellung war nicht primär der Algorithmus, sondern > "Bilder verkleinern"! Die Fragestellung war: * Er hat B/W Bild in einer n*n Matrix vorliegen. Offenbar eine Programmiersprache in der es Matrizen oder zumindest 2D-Arrays gibt. * Wie erhalte ich den Wert eines neuen Pixels > Also eine Frage für Leute, die zu schnellen Ergebnissen kommen möchten - ganz ehrlich: Wenn ich ein schnelles Ergebnis haben will, dann fahr ich das Bildbearbeitungsprogramm meiner Wahl, und sei es nur MS-Paint hoch und verkleinere dort das Bild um den Faktor 2 > so habe ich das zumindest verstanden - das ist eine "nichtkommerzielle" > primitive Lösung des Problems. > Bisweilen sind primitive Lösungen auch gar nicht so schlecht - sie > führen zu einem Ergebnis. > Eine Zeitmessung ist hier offenbar jedem zu aufwändig ?! Deiner Schätzung nach: wie lange dauert es, bis er in seiner Grafik-Lib die Funktion gefunden hat, die seine n*n Matrix als Bilddatei abspeichert. Wie lange dauert es wohl, bis er rausgefunden hat, wie man per Programm eine bestimmte Datei an besagte Web-Site übergibt und die so manipuliert, das der Server das Bild runterrechnet wie lange dauert es wohl, bis er soweit ist, sich das Ergebnis mit seinem Programm wieder zu holen. und warum, wenn er sowieso schon eine Grafik Lib benutzt, die die Speicherung und das Lesen in einem bestimmten Format unterstützt, hat diese sch.... Library keine Funktion um ein Bild zu resampeln? Soviel zum Thema aufwändig. Es geht darum, dass jemand etwas programmieren will! Er schreibt ein Programm! Er hat die Bilddaten schon im Speicher! Und nicht darum, das jemand zu dämlich ist, seine lokale Bildverarbeitung anzuwerfen bzw. sich ein GIMP zu installieren.
> Offenbar können hier alle anderen schon direkt abschätzen, was schneller > sein wird. Und es wird nicht das sein, was du denkst. Wenn Ihr alles besser wißt, wozu dann noch die Fragen? > Begründe das mal bitte. Wie kann man deiner Meinung nach schneller zu > einem Ergebnis kommen, ohne dabei massivst an Bildinformationen zu > verlieren? Wie gesagt, der Fragesteller wollte wissen, ob man den Algorithmus verwenden kann, ob er richtig ist. Er ist richtig, aber auch zeitintensiv, da man eine hohe Abtastrate wählen muß. Je höher die Auflösung, desto weniger Bildinformation geht verloren - deswegen machen die Kamerahersteller ja auch Werbung mit der Zahl der Megapixel. Mach doch Deine Gradientenfiltermethode,etc. - ich bekomme kein Geld für das bestmögliche Lösungsergebnis, für mich gibt's hier Null zu gewinnen ... im Gegenteil, da werden Lösungen sogar noch kritisiert. Ja dann postet doch mal Eure Lösungen hier, ich hab noch nichts gesehen ?! Macht doch mal einen Zeit- und Ergebnisvergleich! > Das wird von dir auch nicht verlangt. Du hast aber eine These > aufgestellt, jetzt musst du auch akzeptieren, dass deine These > angegriffen wird. Dann müßt Ihr meine These kippen - ich habe Euch den Weg aufgezeigt, wie man das machen kann - mit Hilfe einer Zeitmessung - wo ist da eigentlich das Problem? Weiterhin: Wie sieht denn das Ergebnis aus, offenbar scheint ja nicht alles zu funktionieren? Meine "Idioten"-Methode funktioniert. > Die Fragestellung war: Und wie hieß der Thread? Schon vergessen? > Er hat B/W Bild in einer n*n Matrix vorliegen. > Offenbar eine Programmiersprache in der es Matrizen oder zumindest > 2D-Arrays gibt. nur mal zur Erinnerung - DAS war die Fragestellung: ich habe ein Graustufen Bild in einer n x n Matrix vorliegen. Das Bild möchte ich um den Faktor 2 verkleinern. Wie komme ich nun auf den Wert eines Pixels? Was Du jetzt machst mit der "neuen" Fragestellung ist eine mögliche Interpretation. Man kann auch weiter orakeln, daß es wohl um Bilderkennung gehen soll - wegen dem Schachbrett ? Deshalb wohl auch nur Graustufen ? > ganz ehrlich: > Wenn ich ein schnelles Ergebnis haben will, dann fahr ich das > Bildbearbeitungsprogramm meiner Wahl, und sei es nur MS-Paint hoch und > verkleinere dort das Bild um den Faktor 2 geht auch; erlaubt ist, was am Ende funktioniert - ich muß nicht den Designpreis mit meinem Lösungsvorschlag erringen. Hast dann gewonnen, zufrieden? > Deiner Schätzung nach: > wie lange dauert es ..... > und warum ... und warum denn überhaupt Graustufen? Wieviele denn? Verkleinerung um Faktor 2 - Längseite, beidseitig ? Offenbar läuft dieses super n*n Matrix-Programm nur unzureichend. Was weiß ich denn? Nichts genaues weiß man hier. Einfach die beste Lösung posten, wenn Du Sie aufgrund dieser Minimalangaben kennst ! ... ich werd's nicht mehr tun, sondern überlasse Dir die Ehre. Wenn Euch eine Lösung zu simpel ist, eine bessere vorschlagen, einen Vergleichstest machen ... offenbar zu schwierig. > Es geht darum, dass jemand etwas programmieren will! Dann muß er sich bemühen, die richtigen Fragen zu stellen. Über welche Programmiersprache reden wir hier denn überhaupt? Keiner weiß es. > Er schreibt ein Programm! Er hat die Bilddaten schon im Speicher! Das Programm ist schon längst fertig und läuft - aber nicht gut genug. Er hat offenbar ein Grundlagenproblem, deshalb auch diese Frage - kein Programmierproblem. Ich habe bisher keine Fragen zur Programmierung hier entdeckt, Du etwa? > Und nicht darum, das jemand zu dämlich ist, seine lokale > Bildverarbeitung anzuwerfen bzw. sich ein GIMP zu installieren. Sein Programm muß zeit- und insbesondere im Ergebnis einem Malprogramm bzw. Freeware-Internetprogramm mindestens ebenbürtig sein, sonst kann er seine Diplomarbeit gleich versenken, meine Meinung. Bisweilen muß man sich schon mal mit dämlichen Sachverhalten, die einen nicht in den Kram passen, auseindersetzen, so ist das nun einmal im Leben, leider.
S. B. schrieb: > Wie gesagt, der Fragesteller wollte wissen, ob man den Algorithmus > verwenden kann, ob er richtig ist. > Er ist richtig, aber auch zeitintensiv, da man eine hohe Abtastrate > wählen muß. > Je höher die Auflösung, desto weniger Bildinformation geht verloren - > deswegen machen die Kamerahersteller ja auch Werbung mit der Zahl der > Megapixel. Irgendwie hab ich das Gefühl, du bist Spitze darin, Fragen zu beantworten die gar keiner gestellt hat. > Macht doch mal einen Zeit- und Ergebnisvergleich! Hab ich schon. Der Zeitvergleich geht eindeutig zu deinen Ungunsten aus. In der Zeit in der du dir die EInzelteile zusammensuchst um das Bild an den Server zu schicken zu können, sind die meisten Programmierer schon längst mit den beiden ineinander geschachtelten Schleifen fertig. Und auch im laufenden Betrieb: Bist du wirklich so naiv, das du denkst, du könntest einen auf meinem PC laufenden Bildfilter mit einem über TCP/IP erreichbaren Server schlagen, wo die Hin und Rückübertragung schon mehr Zeit kosten, als selbst die aufwändigste Filterung auf meinem lokalen PC? Und was macht dann der Server? er macht genau dasselbe, was ich auch lokal mit dem Bild machen könnte. Nur dass dann noch die Übertragungszeit noch mit dazu kommt. > ich habe ein Graustufen Bild in > einer n x n Matrix vorliegen. Das Bild möchte ich um den Faktor 2 > verkleinern. Wie komme ich nun auf den Wert eines Pixels? > > Was Du jetzt machst mit der "neuen" Fragestellung ist eine mögliche > Interpretation. Nicht wirklich. Dieses spezielle Forum hier trägt den Titel "PC-Programmierung" > Man kann auch weiter orakeln, daß es wohl um Bilderkennung gehen soll - Das orakelst du dir jetzt aber aus dem Kaffessatz. > wegen dem Schachbrett ? Deshalb wohl auch nur Graustufen ? Schon mal darüber nachgedacht, dass die Pixel auch einfach nur Visualisierungen von Messewerten sein könnten, die sein Programm von irgendwelchen Sensoren aufgenommen hat, und er einfach nur einen Weg braucht um einen Thumbnail oder eine kleinere Version davon zu erzeugen? Nicht jedes 'Bild' entsteht dadurch, dass jemand mit einer Digitalkamera durch Wald und Flur läuft. Du orakelst mir ein bischen viel. Richte dich nach dem was in der ursprünglichen Fragestellung enthalten ist, entscheide dich ob du daraus eine Antwort bauen kannst, die dem Fragesteller weiterhilft, antworte ruhig auch mal ein wenig ironisch, aber mach weniger kaffeesatzlesen. >> Es geht darum, dass jemand etwas programmieren will! > Dann muß er sich bemühen, die richtigen Fragen zu stellen. > Über welche Programmiersprache reden wir hier denn überhaupt? > Keiner weiß es. Müssen wir auch nicht. Es ging einfach nur um die Fragestellung, ob arithmetisches Mittel ein geeignetes Mittel ist, um ein Bild auf die Hälfte der Auflösung zu bringen. Mehr wollte er nicht wissen. >> Er schreibt ein Programm! Er hat die Bilddaten schon im Speicher! > Das Programm ist schon längst fertig und läuft - aber nicht gut genug. Das hat er nicht gesagt. > Er hat offenbar ein Grundlagenproblem, Mag sein. Die meisten hätten es wahrscheinlich einfach ausprobiert. Vielleicht hat er es ausprobiert und einen Fehler gemacht und anstelle da jetzt einem Gespenst nachzulaufen wollte er eine Bestätigung haben, dass die Idee funktioniert. Alles möglich. Hat aber auch alles nichts mit dem zu tun, was du vorgeschlagen hast. > Ich habe bisher keine Fragen zur Programmierung hier entdeckt, Du etwa? Das mag vielleicht auch daran liegen, dass "Schicks zu einem Server und lass es dort bearbeiten" nicht wirklich ein Ansatz ist, denn die meisten 'Programmierer' bevorzugen würden. Das sind BWL-er Lösungsansätze, die ihnen von den Marketingfuzzis eingeredet werden. Also denjenigen, die Freitag Nachmittag einfach heimgehen, wenn die Kacke so richtig am dampfen ist, und die Techniker wieder mal in einer Nacht und Nebelaktion alles richten sollen. Langer Rede, kurzer Sinn: Ich halte dich nicht für jemanden der etwas von Programmierung versteht. Dafür versuchst du jetzt deine Haut so gut es geht durch Aufzählen von Buzzwords zu retten.
Dimitri Roschkowski schrieb: > Nehmen wir mal ein Schachbrett, wobei jedes Feld genau einem Pixel > entspricht. Nach deiner Methode wäre das verkleinerte Bild entweder > komplett Schwarz oder Weiß. Das entspricht jedoch nicht der Realität. > Mit der Lösung von Mathias wäre es Grau - besser aber immer noch nicht > ganz richtig. Wenn man es richtig machen will, dann muss man das Bild > zunächst einmal über entsprechende Gradientenfilter jagen um eine > Gewichtung der einzelnen Pixel zu bekommen. Nach so einer Verkleinerung > entsteht dann ein z.T. verrauscht aussehendes Bild, das jedoch viel mehr > details enthält, als nach euren Methoden. Setzen Prof, 6! Wenn ich ein Schachbrettmuster, das mit einem Pixel pro Feld abgetastet hatte nur noch mit einem Viertel der Auflösung darstellen will und dann nicht ein gleichmäßig graues Bild erhalte, dann ist alles was ich sehe Fehler. Das ergibt sich schon durch das Abtasttheorem, da ich bei der neuen Auflösung den ursprünglichen Wechsel von Hell auf Dunkel gar nicht mehr sehen darf. Also ist das Grau von Mathias die optimale Lösung und nicht eine suboptimale. Die Lösung von Karl Keinz ist für dieses Problem maximal ungünstig, für ein Bild mit Helligkeitsunterschieden deren max. Frequenz deutlich unterhalb der maximal möglichen von Abtastung/2 ist aber durchaus brauchbar und viel schneller.
Karl heinz Buchegger schrieb: > Was soll denn das für ein Algorithmus sein? > "Lade das Bild auf einen Server und hol dir von dort das Ergebnis ab" Mache ich auch immer. Auf Neudeutsch schimpft es sich Cloud Computing. Allerdings mit einer größeren Last. ;) S. B. schrieb: > Dann müßt Ihr meine These kippen - ich habe Euch den Weg aufgezeigt, wie > man das machen kann - mit Hilfe einer Zeitmessung - wo ist da eigentlich > das Problem? >#include <iostream> > >int main(){ >int n = 10000; >int summe = 0; >for(int i = 0; i < n; i++) > for(int j = 0; j < n; j++) > summe +=n; >} > dr@Sierra ~/test $ time ./a.out > > real 0m0.317s Also ich habe 0.3 Sekunden für ein 100Megapixel Bild benötigt (1 CPU Core). Etwa die gleiche Zeit werde ich benötigen, um eine Datei auszulesen und auf der Festplatte zu speichern. Genau die gleiche Zeit, um die Datei wieder einzulesen + die Verkleinerung auf einem Server. q.e.d. S. B. schrieb: > Einfach die beste Lösung posten, wenn Du Sie aufgrund dieser > Minimalangaben kennst ! > Über welche Programmiersprache reden wir hier denn überhaupt? > Keiner weiß es. > und warum denn überhaupt Graustufen? Wieviele denn? > Verkleinerung um Faktor 2 - Längseite, beidseitig ? Es wurden alle Vorgaben geliefert. Ich frage mich, wieso du die hinterfragen musst. Die Programmiersprache ist auch egal. S. B. schrieb: > Sein Programm muß zeit- und insbesondere im Ergebnis einem Malprogramm > bzw. Freeware-Internetprogramm mindestens ebenbürtig sein Das sagt jetzt wer?
> Irgendwie hab ich das Gefühl, du bist Spitze darin, Fragen zu > beantworten die gar keiner gestellt hat. Du hast recht, lohnt sich nicht. > Dieses spezielle Forum hier trägt den Titel "PC-Programmierung" Über welche Programmiersprache reden wir hier? Hab da wohl die Fragen nicht richtig gelesen, sorry. > Bist du wirklich so naiv, das du denkst, du könntest einen auf meinem PC > laufenden Bildfilter Du hast recht, > Das orakelst du dir jetzt aber aus dem Kaffessatz Du hast wie immer recht. Deshalb überlasse ich Dir jetzt die Bühne in der Hoffnung auf einen guten Lösungsansatz für das Orakelsoft-Programm. Ich gebe auf, hab leider keine Ahnung.
> Ich frage mich, wieso du die hinterfragen musst. Dann gibt's keine Probleme hinterher. Spätestens beim GAU-User, der das Programm käuflich erwirbt, könnten diese (in anderer Form und bezogen auf andere Sachen natürlich) kommen. > Die Programmiersprache ist auch egal. das sieht Karl-Heinz wohl etwas anders, sonst dürfte ich am Ende wohl wieder teilnehmen :-) Nein, lieber nicht - da nutze ich meine Zeit besser.
U.R. Schmitt schrieb: > Also ist das Grau von Mathias die optimale Lösung und nicht eine > suboptimale. Es ist trotzdem keine optimale Lösung. Wir sind uns darüber wohl einig, dass die vorhandene Information nicht ausreichend ist, um eine vernünftige Abtastung durchführen zu können. Aus diesem Grund wendet man hier Filter an. Die Filter verfälschen zwar das Bild, jedoch liefern die besseres Ergebnis, als die stumpfe Berechnung eines Mittelwertes. Wobei ich mit besser meine, dass man auf dem Bild immer noch ein Muster erkennen kann.
Habe das Problem in LabVIEW programmiert. ´Benötigt für ein 256*256 Graubild 24ms.
Effizient implementiert dauert das wenige Mikrosekunden. Die Diskussion ob so eine triviale Form der Bildskalierung rechnerisch zu aufwendig ist finde ich ziemlich absurd. Darüber hätte man zu XT-Zeiten diskutieren können.
Dimitri Roschkowski schrieb: > Es ist trotzdem keine optimale Lösung. Es gibt keine optimale Lösung, weil das Herunterskalieren immer einen Informationsverlust mit sich bringt. "Informationsverlust" bedeutet schließlich, daß nachher wirklich Informationen nicht mehr da sind. > Aus diesem Grund wendet man hier Filter an. Die Filter verfälschen zwar > das Bild, jedoch liefern die besseres Ergebnis, als die stumpfe > Berechnung eines Mittelwertes. Wobeiich mit besser meine, dass man auf > dem Bild immer noch ein Muster erkennen kann. Warum sind irgendwelche von Filtern durch Unzulänglichkeiten eingestreute Muster besser? Diese Muster haben ja nur indirekt mit dem Originalmuster zu tun und bringen dir eigentlich nichts. Wenn ich durch eine "krumme" Skalierung schicke Moiree-Effekte bekomme, sind die auch nicht besser, nur weil ich dadurch ein Muster habe. Andreas Schwarz schrieb: > Die Diskussion ob so eine triviale Form der Bildskalierung rechnerisch > zu aufwendig ist finde ich ziemlich absurd. Darüber hätte man zu > XT-Zeiten diskutieren können. Insbesondere, wenn als Alternative etwas vorgeschlagen wird, das eine Konvertierung nach JPEG voraussetzt, die alleine schon ein Vielfaches an Rechenzeit braucht.
Rolf Magnus schrieb: >> Die Diskussion ob so eine triviale Form der Bildskalierung rechnerisch >> zu aufwendig ist finde ich ziemlich absurd. Darüber hätte man zu >> XT-Zeiten diskutieren können. > > Insbesondere, wenn als Alternative etwas vorgeschlagen wird, das eine > Konvertierung nach JPEG voraussetzt, die alleine schon ein Vielfaches an > Rechenzeit braucht. Und noch mehr Artefakte erzeugt, die nichts mit dem Original zu tun haben :-)
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.