OpenCV-Problem/Anregung

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Benutzeravatar
Felix92
User
Beiträge: 133
Registriert: Mittwoch 7. November 2018, 17:57

Hallo, ich bin totaler Neuling was OpenCV angeht,

kurz zum problem:

Ich habe ein Objekt, in dem ein JPG-Bild gespeichert ist, welches eine Folie mit schwarzem Text auf weißem Hintergrund beinhaltet.
Jetzt möchte ich mit OpenCV auslesen, ob auf der Folie unten rechts in einem Videostream genügend Platz vorhanden ist.

Meine Idee ist, den Kontrast im Bild auszulesen und dann den Wert der gesamten Bildlänge abzuziehen um zu sehen ob genügend Platz für das Video vorhanden ist.
Wenn ja, sollte das Video angezeigt werden.

erste Frage:

wäre das mit OpenCV möglich?

zweite Frage:

wenn ja, wie sollte ich dort am besten rangehen?

Vielen Dank

MfG Felix

method for creating the object:

Code: Alles auswählen

from wand.image import Image as wa
from slide import Slide


class Presentation:
    """Class that divides a PDF into individual images and converts them to jpg"""
    def __init__(self):
        """Constructor of the class"""
        print('Image erstellt')
        pass

    def convert(self, path, filename):
        """a method that takes a path and a PDF file, converts them to JPG, and then saves the individual images"""
        pdf = wa(file=path + filename, resolution=300)
        pdf_images = pdf.convert("jpeg")
        page_number = 1
        for img in pdf_images.sequence:
            page = wa(image=img)
            slide = []
            slide.append(Slide(page_number, page))
            page_number += 1
object:

Code: Alles auswählen

class Slide:
    """Constructor that saves the current page and page number"""
    def __init__(self, page_number, page):
        self.page_number = page_number
        self.page = page
__deets__
User
Beiträge: 14540
Registriert: Mittwoch 14. Oktober 2015, 14:29

Mir ist dein Problem nicht klar geworden. Bei OpenCV (bzw generell computer vision Problemen) sagt ein Bild mehr als tausend Worte.

Und "Kontrast auslesen" ist auch ein eher ungewoehnlicher Begriff. Dir sind ja die maximalen/minimalen Werte im Bild prinzipiell egal, es geht darum, die Position bestimmter Objekte im Bild festzustellen. Da sind Verfahren wie adaptive thresholding, contour detection, morphologische Operationen etc relevant.
Benutzeravatar
Felix92
User
Beiträge: 133
Registriert: Mittwoch 7. November 2018, 17:57

Huhu,
also ich lese eine PDF-Datei ein, diese wird durch convert gesplittet in .jpg konvertiert und die aktuelle Seite als Objekt in Slide gespeichert.
Dieses Objekt ist also mein "Ausgangspunkt" womit ich arbeiten muss.

Hier mal anschaulich:
Bild
- hier sollte das Video (unten rechts) nicht eingeblendet werden, da die Folie zu voll ist und die Schrift überdecken würde.

Bild
- hier sollte das Video dann sichtbar sein

Und meine Idee war halt mit OpenCV zu schauen ob genügend Platz auf der Folie ist ( true dann Video , false dann nicht)
Allerdings weiß ich nicht ob das möglich ist und falls es möglich ist wie ich dort rangehen sollte, da ich noch nie etwas mit OpenCV gemacht habe. :)

Ich hoffe das erklärt es etwas besser.
Ich bin für jeden Vorschlag, Tipp dankbar.
MfG Felix
__deets__
User
Beiträge: 14540
Registriert: Mittwoch 14. Oktober 2015, 14:29

Klar, das kann man machen - es kommt da auf die Details an. Wenn du fest einfach nur eine (oder im Zweifel mehrere) Positionen abpruefen willst, kannst du einfach den entsprechenden Bildauschnitt analysieren, und zB darauf pruefen, ob er nur weisse Pixel enthaelt. Das geht mit OpenCV gut, kann aber zur Not auch nur mit Pillow oder so gemacht werden.

Ein bisschen fortgeschrittener waere dann ein Ansatz, bei dem man eine Stelle sucht, an der es moeglich ist, die Einblendung zu machen. Da sind Stichworte wie template matching zu nennen. Das muss man dann mal konret ausprobieren. Da du aber sehr ideale Daten (da aus einer digitalen Vorlage, ohne Rauschen etc) sollte auch das gut gehen.
Benutzeravatar
ThomasL
User
Beiträge: 1366
Registriert: Montag 14. Mai 2018, 14:44
Wohnort: Kreis Unna NRW

Gute OpenCV Tutorials findest du hier: https://www.pyimagesearch.com/opencv-tu ... es-guides/
Ich bin Pazifist und greife niemanden an, auch nicht mit Worten.
Für alle meine Code Beispiele gilt: "There is always a better way."
https://projecteuler.net/profile/Brotherluii.png
Benutzeravatar
Felix92
User
Beiträge: 133
Registriert: Mittwoch 7. November 2018, 17:57

Ah okay danke erstmal !
Hast du da vlt. nen gutes Tut zu empfehlen damit man sich das mal grob in der Praxis ansehen kann ?
Danke @ThomasL ich schaue mal rein :)

MfG Felix
Antworten