image-recognition

___ answer9586779 ___

Ich habe eine Implementierung einer bilinearen Interpolation gefunden. C-Code.

Angenommen, dass:

a - ein primäres Array (das wir dehnen / komprimieren müssen) Zeiger.

oldw - primäre Breite

oldh - primäre Höhe

b - ein sekundäres Array (das wir nach dem Komprimieren / Strecken erhalten) Zeiger

neww - sekundäre Breite

newh - Sekundenhöhe

%Vor%

Ich hoffe, es wird für andere Benutzer nützlich sein. Aber ich zweifle immer noch, ob es in meiner Situation funktioniert (wenn man nicht stratcht, sondern ein Array komprimiert). Irgendwelche Ideen?

    
___ qstntxt ___

Könnten Sie mir helfen, den richtigen Algorithmus für die Bildgrößenanpassung zu finden? Ich habe ein Bild von einer Nummer. Die maximale Größe ist 200x200, ich brauche ein Bild mit der Größe 15x15 oder noch weniger. Das Bild ist monochrom (schwarz und weiß) und das Ergebnis sollte das gleiche sein. Das ist die Info über meine Aufgabe.

Ich habe bereits einen Algorithmus ausprobiert, hier ist es

%Vor%

Aber es wird nicht mit der Abnahme eines Bildes funktionieren, was mein vorheriges Ziel ist. Könnten Sie mir helfen, einen Algorithmus zu finden, der dieses Problem lösen könnte (die Qualität muss nicht perfekt sein, die Geschwindigkeit spielt keine Rolle). Einige Informationen darüber wären perfekt, wenn man bedenkt, dass ich ein Neuling bin. Natürlich ist auch ein kurzes Stück c / c ++ - Code (oder eine Bibliothek) perfekt.

Bearbeiten: Ich habe einen Algorithmus gefunden. Wird es für die Komprimierung von 200 auf 20 geeignet sein?

    
___ answer9571454 ___

Da Sie mit einer Bibliothek arbeiten können, können Sie sich die imagemagick C ++ - Bindungen ansehen.

Sie können das Bild auch in einem einfachen Format wie %code% ausgeben und dann den Befehl imagemagick aufrufen, um die Größe zu ändern:

%Vor%

Beispielausgabedatei (Hinweis: Sie müssen für jede Zeile keine neue Zeile verwenden):

%Vor%

Die Ausgabedatei:

%Vor%     
___ answer9570955 ___

Ich denke, Sie brauchen Interpolation . Es gibt viele Algorithmen, zum Beispiel können Sie bilineare Interpolation

verwenden     
___ qstnhdr ___ Algorithmus zum Herunterskalieren von Bildern ___ answer9570951 ___

Ein Ansatz zum Verkleinern eines %code% -Bildes auf, sagen wir %code% , wäre, jedes zweite Pixel entlang jeder Reihe und Spalte zu nehmen. Ich überlasse es Ihnen, Ihren eigenen Code für die Verkleinerung auf eine Größe zu rollen, die nicht die Originalgröße dividiert. Und ich gebe keine Garantie für die Eignung dieses Ansatzes für Ihr Problem.

    
___ answer9571580 ___

Der allgemeine Ansatz besteht darin, die Eingabe zu filtern, um eine kleinere Größe zu generieren, und den Schwellenwert, der in monochrom konvertiert werden soll. Der einfachste zu implementierende Filter ist ein einfacher Durchschnitt, und er liefert oft OK-Ergebnisse. Der Sinc-Filter ist theoretisch der beste, aber es ist unpraktisch zu implementieren und hat klingelnde Artefakte, die oft unerwünscht sind. Viele andere Filter sind verfügbar, wie Lanczos oder Tent (das ist die verallgemeinerte Form von Bilinear).

Hier ist eine Version eines durchschnittlichen Filters in Kombination mit einer Schwellenwertfunktion. Angenommen, %code% ist die Eingabe mit Pixelwerten von 0 oder 1, und die Ausgabe ist %code% im selben Format. Ich nahm auch an, dass %code% die am wenigsten signifikante Dimension ist, die entgegengesetzt zu der üblichen mathematischen Notation und entgegengesetzt zu den Koordinaten in Ihrer Frage ist.

%Vor%

Ich habe diesen Code jetzt getestet. Hier ist das 200x200-Bild für die Eingabe, gefolgt von einer Reduzierung des nächsten Nachbarn auf 15x15 (erstellt in Paint Shop Pro), gefolgt von den Ergebnissen dieses Codes. Ich überlasse es Ihnen, zu entscheiden, welches dem Original treuer ist; der Unterschied wäre viel offensichtlicher, wenn das Original einige feine Details hätte.

    
___ answer9570971 ___

Um ein Bild richtig zu verkleinern, sollten Sie Ihr Bild in quadratische Pixelblöcke aufteilen und dann etwas wie Bilineare Interpolation Um die richtige Farbe des Pixels zu finden, das den NxN-Pixelblock ersetzen soll, auf den Sie die Interpolation anwenden.

Da ich nicht so gut in Mathematik bin, werde ich nicht versuchen, dir ein Beispiel dafür zu geben, wie der Code aussehen könnte. Entschuldigung: (

    
___ tag123c ___ C ist eine universelle Computerprogrammiersprache, die für Betriebssysteme, Bibliotheken, Spiele und andere Hochleistungsanwendungen verwendet wird. Dieses Tag sollte bei allgemeinen Fragen zur C-Sprache verwendet werden, wie in der Norm ISO 9899: 2011 definiert. Fügen Sie ggf. ein versionsspezifisches Tag wie c99 oder c90 für Fragen zu älteren Sprachstandards hinzu. C unterscheidet sich von C ++ und es sollte nicht mit dem C ++ - Tag kombiniert werden, wenn ein rationaler Grund fehlt. ___ tag123c ___ C ++ ist eine universelle Programmiersprache. Es wurde ursprünglich als Erweiterung von C entworfen und behält eine ähnliche Syntax, ist aber jetzt eine komplett andere Sprache. Verwenden Sie dieses Tag für Fragen zu Code, der mit einem C ++ - Compiler kompiliert werden soll. ___ answer9571565 ___

Wenn Sie Win32 verwenden, hilft möglicherweise die StretchBlt-Funktion.

Die Funktion StretchBlt kopiert eine Bitmap aus einem Quellrechteck in ein Zielrechteck und dehnt oder komprimiert die Bitmap, um sie bei Bedarf an die Abmessungen des Zielrechtecks ​​anzupassen. Das System streckt oder komprimiert die Bitmap gemäß dem aktuell im Zielgerätekontext festgelegten Streckungsmodus.

    
___ tag123image ___ Das Bild-Tag ist für Fragen im Zusammenhang mit dem Laden, Formatieren, Speichern, Komprimieren und Anzeigen von Bildern im Kontext des Quellcodes gedacht. Dieses Tag sollte auch zur Unterstützung verschiedener Bildbibliotheken verwendet werden. Fragen zu bestimmten Bildformaten sollten die Tags für diese Formate enthalten. ___ tag123image_recognition ___ Klassifizierung eines erkannten Objekts in verschiedene bekannte Kategorien. ___ tag123algorithm ___ Ein Algorithmus ist eine Folge wohldefinierter Schritte, die eine abstrakte Lösung für ein Problem definieren. Verwenden Sie dieses Tag, wenn sich Ihr Problem auf den Algorithmusentwurf bezieht. ___
2
Antworten

Shape Recognition - Mangos zählen

Ich möchte gerne ein Nahaufnahmebild eines Mangobaums verarbeiten, damit ich die Mangos identifizieren und zählen kann. Eine Mango ist in etwa eine ovale oder elliptische Form, die sich von den Blättern und Zweigen im Bild eindeutig unterscheide...
04.02.2012, 03:55
1
Antwort

Arbeiten mit Entscheidungsbäumen

Ich weiß tl; dr; Ich werde versuchen, mein Problem zu erklären, ohne dich mit massenhaftem Code zu belästigen. Ich arbeite an einem Schulauftrag. Wir haben Bilder von Schlümpfen und wir müssen sie mit einer Hintergrundanalyse im Vordergrund f...
13.02.2011, 11:35
2
Antworten

Führe die letzte Tensorflow-Ebene zurück, verwende aber weiterhin vorherige Imagine-Klassen

Mein Ziel ist es, den vorhandenen 1000 Imagenet-Klassen, die mit Tensorflow Inception ausgeliefert wurden, weitere Klassen hinzuzufügen. Jetzt könnte ich das Ganze einfach neu starten, indem ich mit bazel-bin/inception/imagenet_train von Grun...
05.05.2017, 07:10
1
Antwort

Feature-Erkennung mit patentfreien Deskriptoren

Ich brauche den Feature-Erkennungsalgorithmus. Ich habe es satt, im Internet zu surfen und finde nur SURF-Beispiele und Hinweise wie man das macht, aber ich habe kein Beispiel mit anderen als patentierten Deskriptoren wie SIFT oder SURF gefund...
05.08.2015, 14:16
7
Antworten

Algorithmus zum Herunterskalieren von Bildern

Könnten Sie mir helfen, den richtigen Algorithmus für die Bildgrößenanpassung zu finden? Ich habe ein Bild von einer Nummer. Die maximale Größe ist 200x200, ich brauche ein Bild mit der Größe 15x15 oder noch weniger. Das Bild ist monochrom (schw...
05.03.2012, 17:12