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

Irgendwelche Visualisierungen des Entscheidungsprozesses des neuronalen Netzes, wenn Bilder erkannt werden?

Ich bin im Coursera ML-Kurs eingeschrieben und habe gerade angefangen, über neuronale Netze zu lernen. Eine Sache, die mich wirklich irritiert, ist, wie man etwas "Menschliches" wie eine handgeschriebene Ziffer erkennt, wenn man die guten G...
29.05.2012, 02:08
2
Antworten

Wie kann ich geometrische 2D-Formen (z. B. Quadrat, Dreieck, Kreis) in einem JPEG-Bild erkennen?

Nachdem ich ein Bild aufgenommen habe, versuche ich die Form des Objekts zu erkennen, das aufgenommen wurde. Ich suche ähnlich wie die Gesichtserkennung, außer dass die App Formen statt Gesichter erkennen soll. Ich erstelle eine Android App mit...
16.08.2011, 01:42
1
Antwort

Klassifizieren Sie Gesichter von VNFaceObservation

Ich arbeite mit Vision framework, um Gesichter und Objekte auf mehreren Bildern zu erkennen und funktioniert fantastisch. Aber ich habe eine Frage, die ich in der Dokumentation nicht finden kann. Die Fotos App auf iOS klassifiziert Gesicht...
03.08.2017, 09:54
1
Antwort

Wie kann ich mit Computer Vision eine Form in einem Bild finden?

Ich habe ein einfaches Foto, das ein Logo-Bild enthalten kann oder auch nicht. Ich versuche herauszufinden, ob ein Bild die Logoform enthält oder nicht. Das Logo (rechteckige Form mit einigen zusätzlichen Funktionen) könnte verschiedene Größen h...
12.03.2010, 03:27
3
Antworten

Erkennen ähnlicher Formen in zufälliger Skalierung und Translation

Ich bin gerade ratlos, wenn ich Sachen auf einem graphischen Bildschirm finde, aber ich weiß nicht, wie ich eine bestimmte Form innerhalb eines Bildes finden kann. Die Form im Bild könnte einen anderen Maßstab haben und natürlich bei einem unbek...
17.02.2013, 13:01
3
Antworten

Lernschritte für den Bilderkennungsalgorithmus

Ich habe beschlossen, meine persönliche Zeit nach den Bürozeiten zu verbringen, um die Bausteine ​​zu lernen, wie Bilder vom JPEG-Typ analysiert und auf dem Bildschirm dargestellt werden. Mein Interesse ist auf die Objekterkennung in einem Bild....
04.01.2011, 13:10
1
Antwort

Abstand zwischen den Hyperebenen

Ich versuche, mir etwas maschinelles Lernen beizubringen und habe die MNIST-Datenbank ( Ссылка ) verwendet damit. Der Autor dieser Website schrieb 1998 eine Abhandlung über alle Arten von Techniken zur Erkennung von Handschriften, die unter ver...
12.11.2012, 08:23
3
Antworten

Identifizieren Sie das Muster im Bild

Was ist der beste Ansatz, um ein Muster zu identifizieren (könnte ein Text, eine Unterschrift, ein Logo sein. NICHT Gesichter, Objekte, Personen usw.) in einem Bild, vorausgesetzt, dass alle Bilder aus der gleicher Winkel, dh das zu identifizi...
19.07.2011, 18:03
3
Antworten

Logoerkennung mit OpenCV

Ich versuche ein Osterei in einer mobilen App zu implementieren, an der ich gerade arbeite. Dieses Osterei wird ausgelöst, wenn ein Logo in der Kameraansicht erkannt wird. Das Logo, das ich zu erkennen versuche, ist dieses: . Ich bin nicht ga...
17.03.2012, 09:41
4
Antworten

Objekte im Bild erkennen [geschlossen]

Hallo, ich mache gerade ein Schulprojekt, bei dem ein Roboter zwischen Flamingoplatten auf dem Boden fährt. Wir müssen einen Algorithmus erstellen, der die Positionen dieser Platten identifizieren kann, so dass wir Pfade um sie herum erstellen k...
14.04.2010, 08:48