bild datei auslesen und schwarze bereiche erkennen



  • Auch wenn Sone nicht rechnen kann, weiß ich wirklich nicht warum Du hierfür Software-Unterstützung brauchst.
    Möchtest Du dann tatsächlich "von Hand" ein Bild aufnehmen, es auf den PC übertragen und durchzählen lassen?

    Nunja, die Kreise sind so schön gleichmäßig, ich würde da direkt mit einer Hough transform rangehen.



  • Bashar schrieb:

    Sone schrieb:

    1010+10=11010 * 10 + 10 = 110
    (Ohne das Rohr oben im Bild)
    Das geht doch im Kopf ratzfatz.

    Im Prinzip schon, allerdings sind es 105 Rohre.

    Ich war verwirrt, ja, 105. Ich dachte, jede zweite Reihe hat 12 Rohre.

    Auch wenn Sone nicht rechnen kann

    Doch, ich kann gut rechnen. Du kannst nicht schlussfolgern. 🙂



  • µ schrieb:

    Möchtest Du dann tatsächlich "von Hand" ein Bild aufnehmen, es auf den PC übertragen und durchzählen lassen?

    Eine Handy-App böte sich an. Man könnte das aufgenommene Bild anzeigen und dort die Kreise markieren, so dass man auf einen Blick merkt, ob alle Kreise erfasst wurden.

    Nunja, die Kreise sind so schön gleichmäßig, ich würde da direkt mit einer Hough transform rangehen.

    "direkt"? Vorher würde ich mich um die gleichmäßige Ausleuchtung kümmern, dann binarisieren.



  • Bashar schrieb:

    Nunja, die Kreise sind so schön gleichmäßig, ich würde da direkt mit einer Hough transform rangehen.

    "direkt"? Vorher würde ich mich um die gleichmäßige Ausleuchtung kümmern, dann binarisieren.

    "Direkt" = Ich würde nicht lange über andere möglichkeiten nachdenken und es damit versuchen.
    Shading-Correction oder Adaptives Tresholding sind obligatorisch.



  • OK 🙂 Ich bezweifle lediglich, dass der OP sich bewusst ist, worauf er sich da einlässt.



  • Ich habe das Bild mal in einem meiner Programme geladen, das eigentlich für ganz andere Zwecke entwickelt wurde und ein wenig an den Parametern gedreht.

    <link entfernt>

    Sind nur ein paar klassische Filter aus OpenCV gefolgt von einem Blobdetektor.



  • hallo, danke für die Antworten.
    es ist so das ich das einfachste foto geschossen hab, es gibt Behälter mit 1300 rohren und wenn ich mich da bei 879 verzehle muss ich nue anfangen. eigentlich ist die Software für Smartphone gedacht, da ich mich mit java (android) nicht auskenne habe ich mein handy gerooted und c4droid installiert. muss nich unbedingt für Smartphone sein, ich kann theoretisch mehrere fotos machen und dann durch Programm laufen lassen.



  • Liegen die Rohre immer so schön dicht in den Behältern? Falls sie das tun, können sie doch immer so gezählt werden, dass man die Anzahl in einer langen Reihe ermittelt, sie verdoppelt, eins abzieht (so wird ja eine kurze dazugezählt) und schließlich zählt, wie viele lange Reihen es gibt. So sollte man doch nicht auf Anzahlen von 814 (und mehr) kommen.
    Aber ich hatte gerade noch einen andere, besseren Einfall: Die Rohre auf dem Bild sind alle gleich groß. Falls sie das immer sind, könnte auch die Länge von einem (oder von mehr, z.B. zehn, zur Steigerung der Genauigkeit) gemessen werden und dann nochmal die Gesamtlänge. Die Anzahl der Rohre je Reihe ist dann offensichtlich die Gesamtlänge geteilt durch die eines einzelnen Rohres. So sollte es so auch bei großen Behältern ohne großen Aufwand gehen. 😉



  • leider nicht. die Rohre haben unterschiedliche Durchmesser. in jedem Behälter liegen halt immer die gleichen doch in anderen sind schon andere.



  • Ja, gut, dann musst du halt für jeden Behälter den Einzeldurchmesser neu messen. Es könnte bei großen Behältern trotzdem schneller gehen, als sie abzuzählen. 😉



  • Bin auch für:

    Anzahl_Rohre_in_langer_reihe zählen
    Anzahl_lange_reihen zählen
    Anzahl_kurze_reihen zählen
    Anzahl_Rohre_in_kurzer_reihe = Anzahl_Rohre_in_langer_reihe - 1
    Anzahl_Rohre = Anzahl_lange_reihen * Anzahl_Rohre_in_langer_Reihe + Anzahl_kurze_reihen * Anzahl_Rohre_in_kurzer_reihe
    

    Die Handarbeit wird so von O(N) zu O(sqrt(N)). Ist zwar nicht O(1) wie wenn man nur ein Photo machen müsste, aber bis man den Bilderkennungskram so zuverlässig hat, dass man nicht doch noch hinterher manuelles audit machen muss (verschiedene Lichtsituationen usw.), könnte sehr viel Zeit vergehen.

    Wenn man die Formel als script oder so umsetzt, damit man nicht immer kopfrechnen/taschenrechnern muss, könnte als sanity check eventuell noch

    0 <= Anzahl_lange_reihen - Anzahl_kurze_reihen <= 1
    

    herangezogen werden.

    (Ich mag Bilderkennung zwar, aber ein solches Programm müsste schon seehr viel genutzt werden, um den Aufwand zu rechtfertigen. Wenns allerdings eine Programmierübung sein soll, nur zu. :))



  • Wenn ich als Vorarbeiter die Ladung ueberpruefen soll und die Rohre zaehlen muss, dann freue ich mich ueber solch eine Handyapp. Einfach snapshot mit Rohrmakierungen anzeigen lassen, visuell ueberpruefen, Anzahl irgendwo eintragen.


Anmelden zum Antworten