Entsprechen die DCT-Koeffizienten bestimmten Pixeln?

  • Den DCT-Koeffizienten basierend auf dem, was ich gelesen habe, zu bekommen, wird normalerweise über eine Matrix durchgeführt, normalerweise 8x8 oder 16x16, wobei diese Formeln :

    $$ B_ {pq} = \ alpha_p \ alpha_q \ sum_ {m = 0} ^ {M-1} \ sum_ {n = 0} ^ {N-1} A_ {mn} \ cos \ left (\ frac {\ pi (2m + 1) p} {2M} \ right) \ cos \ left (\ frac {\ pi (2n + 1) q} {2N} \ right), \ quad \ begin {align} & amp; 0 \ leq p \ leq M-1 \ \ & amp; 0 \ leq q \ leq N-1 \ end {align} $$

    $$ \ alpha_p = \ left \ { \ begin {array} {ll} 1 / \ sqrt {M}, & amp; p = 0 \\ \ sqrt {2 / M}, & amp; 1 \ leq p \ leq M-1 \ end {array} \ right. \ Quad \ alpha_q = \ left \ { \ begin {array} {ll} 1 / \ sqrt {N}, & amp; q = 0 \\ \ sqrt {2 / N}, & amp; 1 \ leq q \ leq N-1 \ end {array} \ right. $$

    Allerdings würde ich gerne wissen, ob dies möglich ist den entsprechenden DCT-Koeffizienten eines Pixels oder der Kanten eines Bildes bestimmen? Gibt es eine Möglichkeit, Kanten durch DCT-Koeffizienten zu erkennen?

    19 January 2012
    Darren Kopp
4 answers
  • Was ich vorhabe, ist die Kantenerkennung, um die Positionen / Indizes der Pixel und dann den entsprechenden DCT Koeffizienten

    zu erhalten

    Wie bereits in dem Kommentar angegeben - jedes Pixel im angegebenen Block bezieht sich auf alle Koeffizienten im Block und umgekehrt .

    Beachten Sie jedoch, dass bei der Kantenerkennung der Gradient ermittelt wird. Die lineare Faltung erledigt im Wesentlichen die Arbeit. Was Sie tun können, ist, ein Äquivalent dieser Faltung in der DCT-Domäne anzuwenden, wodurch Sie eine Vorstellung von der Kantenausrichtung in der DCT-Blockdomäne erhalten.

    Dies ist zwar ein relativ enger Bereich - es gibt Papiere, mit denen Sie Kanten in DCT-Blöcken finden können. Siehe die Referenzen unten:

    1. Ein komprimiertes Domänenschema zum Klassifizieren von Blockkantenmustern von Hyun Sung Chang und Kyeongok Kang IEEE-Transaktionen auf der Bildverarbeitung, VOL. 14, NO. 2, FEBRUAR 2005 145

    2. Direkte Merkmalsextraktion aus komprimierten Bildern von Bo Shen et. al. SPIE vol. 2670, Lagerung & amp; Abruf für Bild- und Videodatenbanken IV, 1996

    21 June 2017
    Flowdreeves
  • In einem bestimmten DCT-Block kann eine Kante vorhanden sein. Es ist einfacher, die Momente erster Ordnung und zweiter Ordnung aus den angegebenen DCT-Koeffizienten zu berechnen. Die Varianz in einem kleinen Bereich ist eine Annäherung an den Gradienten in der Mitte (x0, y0) des Blocks. Die Varianz in einem Block kann aus den DCT-Koeffizienten als Summation von Quadraten der AC-Koeffizienten geschätzt werden. Es ist möglicherweise nicht möglich, die genauen Koordinaten in dem Block zu kennen, der die Kante enthält.

    31 January 2012
    Zooba
  • Vielleicht können Sie eine starke Änderung der Farbe / Helligkeit feststellen, indem Sie hochfrequente Komponenten im Y-Block erkennen. Wenn am Hochfrequenzende des DCT-Blocks Nicht-Null-Koeffizienten vorhanden sind, zeigt dies eine scharfe Kante an. Sie können die genaue Position im Block nicht kennen, ohne die Transformation auszuführen. Sie können jedoch feststellen, ob eine scharfe Linie / Punkt vorhanden ist.

    19 January 2012
    AndrewBill the Lizard
  • können Sie nicht. Wie Sie anhand der von Ihnen angegebenen Formel erkennen können, ist jeder DCT-Koeffizient eine Funktion aller Pixel in dem Block, den Sie betrachten. Gleiches gilt für Kanten: Wenn Sie die Kanten aus einem Bild extrahieren und dann DCT mit 8x8-Blöcken anwenden, hängt jeder DCT-Koeffizient von dem Wert der 64 Pixel im Block

    ab
    19 January 2012
    Stocastico