[PYTHON] Versuchen Sie, ein Bild mit Entfremdung zu erzeugen

Einführung

Wenn Sie ein analoges Signal in ein digitales Signal umwandeln, können Sie nur Frequenzen bis zur Hälfte der Abtastfrequenz $ f_s $ beobachten. Diese Frequenz wird als Nyquist-Frequenz bezeichnet, es ist jedoch bekannt, dass Vibrationen, die diese Nyquist-Frequenz überschreiten, nicht beobachtet werden können. Schwingungen oberhalb dieser Nyquist-Frequenz werden als niedrige Frequenzen behandelt. Das Behandeln von Hochfrequenzschwingungen, die die Nyquist-Frequenz überschreiten, als niedrige Frequenzen wird als Aliasing (Faltrauschen) bezeichnet.

Betrachtet man die diskrete Fourier-Transformation von Daten mit $ N $ -Zahlen von $ x_0 $ bis $ x_ {N-1} $

C_k = \frac{1}{N}\sum_{m=0}^{N-1} x_me^{-i\frac{2\pi km}{N}}
k = 0, 1, 2, …, N-1

Die Frequenz entsprechend k ist

f_k = \frac{kf_s}{N}

Es wird sein. Da k bis zu (N-1) existiert, wird es zu $ f_ {N-1} = \ frac {(N-1) f_s} {N} $, und sogar Schwingungen, die die Nyquist-Frequenz von $ f_s / 2 $ überschreiten, können ausgedrückt werden. Das ist richtig ..., $ C_k $ und $ C_ {Nk} $ sind als komplexe Zahlen bekannt, die miteinander konjugiert sind.

C_k = C_{N-k}^*

Daher erfolgt das Umbrechen zentriert auf $ f_s / 2 $. Haben Sie keine Angst vor Missverständnissen, die $ C_ {N-k} $ -Welle wird als $ C_k $ -Frequenzwelle behandelt.

Bilderzeugung

Verwenden Sie numpy, um ein hochauflösendes Bild (5000 x 5000) zu erstellen. Dies wird als pseudoanaloges Signal angesehen.


import numpy as np
import matplotlib.pyplot as plt

#Geben Sie die Bildgröße an
img_size_origin = 5000
#Nullmatrix als Bild
img = np.zeros([img_size_origin, img_size_origin])

#Bildpixelwerte hängen von der y-Koordinate ab
y = np.arange(img_size_origin) 

#Periode 100 Pixel
amp = np.sin(2*np.pi*0.01*y)
for i in range(img_size_origin):
    img[:, i] = amp
    
plt.imshow(img, cmap="gray")
plt.show()

Dadurch wird ein Bild mit 50 Streifen erzeugt. Da es 50 Streifen hat, gibt es 50-Hz-Wellen, wenn das gesamte Bild als ein Zyklus betrachtet wird.

ig.png

Extrahieren Sie nur 1 Pixel pro [comp × comp] aus diesem Bild und generieren Sie ein neues Bild. Wenn comp = 5 ist, befinden sich die extrahierten Pixel an den Koordinaten [3 + 5n, 3 + 5m]. (n> = 0, m> = 0)

comp = 99
#Berechnen Sie die Größe des Ausgabebildes
img_size = img.shape[0]//comp
print(img_size)
#Ausgabebild
img_comp = np.zeros([img_size, img_size])

#[comp×comp]Extrahieren Sie nur das mittlere Pixel aus den Pixeln von
for i in range(img_size):
    for j in range(img_size):
        img_comp[i, j] = img[(i*comp) + (comp//2), (j*comp) + (comp//2)]

plt.imshow(img_comp, cmap="gray")
plt.show()

plt.plot(img_comp[:, 0])
plt.show()

Wenn comp 99 ist

Ich konnte die 50-Hz-Welle nicht gut beobachten und es wurde eine 0,5-Hz-Welle. img_comp.png

Wenn comp 98 ist

Ich konnte die 50-Hz-Welle nicht gut beobachten und es wurde eine 1-Hz-Welle. img_comp.png

Wenn comp 96 ist

Ich konnte die 50-Hz-Welle nicht gut beobachten und es stellte sich heraus, dass es sich um eine 2-Hz-Welle handelte.

img_comp.png

Am Ende

Es scheint, dass viele mysteriöse Bilder gemacht werden können (kleines Durchschnittsgefühl)

Recommended Posts

Versuchen Sie, ein Bild mit Entfremdung zu erzeugen
Versuchen Sie, mit Python3 eine Zeichenfolge aus einem Bild zu extrahieren
So beschneiden Sie ein Bild mit Python + OpenCV
Versuchen Sie, Python-Dokumente automatisch mit Sphinx zu generieren
Ich möchte ein Bild mit Lollipop in WebP konvertieren
Versuchen Sie, den Boden durch Rekursion herauszufordern
[Evangelion] Versuchen Sie, mit Deep Learning automatisch Asuka-ähnliche Linien zu erzeugen
Bildanalyse mit Objekterkennungs-API zum Ausprobieren in 1 Stunde
Schneiden Sie ein Bild mit Python aus
Versuchen Sie, Facebook mit Python zu betreiben
Konvertieren Sie eine Zeichenfolge in ein Bild
Versuchen Sie, das Bild mit opencv2 zu verwischen
Konvertieren Sie PDF in Image mit ImageMagick
Versuchen Sie, mit angr + bingraphvis einen Ausführungspfaddifferenz-Viewer zu erstellen
Ich habe versucht, mit Python + OpenCV eine Bildähnlichkeitsfunktion zu erstellen
Versuchen Sie, mit DCGAN + ein Death Metal-ähnliches Jackenbild zu erzeugen, und kratzen Sie die Metalldatenbank-Site dafür ab
Versuchen Sie, Farbfilme mit Python zu reproduzieren
Erstellen einer Bildaufteilungs-App mit Tkinter
HTML-Mail mit Bild zum Senden mit Python
Bildklassifizierung mit Keras-Von der Vorverarbeitung zum Klassifizierungstest-
Erstellen Sie mit PySimpleGUI einen Bildverarbeitungs-Viewer
Einführung in das Auffüllen von Python-Bildern Auffüllen von Bildern mit ImageDataGenerator
Versuchen Sie, Kirschblüten mit xg Boost vorherzusagen
Versuchen Sie schnell, Ihren Datensatz mit Pandas zu visualisieren
Probieren Sie ganz einfach die automatische Bilderzeugung mit DCGAN-Tensorfluss aus
Erster Versuch von YDK mit Cisco IOS-XE
Beispiel für die Wavelet-Konvertierung von Bildern in Python
[TCP / IP] Versuchen Sie nach dem Studium, mit Python einen HTTP-Client zu erstellen
Versuchen Sie, die Höhendaten des National Land Research Institute mit Python abzubilden
[AWS] Umgang mit WordPress "Beim Zuschneiden eines Bildes ist ein Fehler aufgetreten."
Versuchen Sie, Ihr eigenes AWS-SDK mit bash zu erstellen
Versuchen Sie, das Fizzbuzz-Problem mit Keras zu lösen
Zusammenfassung des Bibliotheksvergleichs zum Generieren von PDF mit Python
Versuchen Sie, dem Bild die Verzerrung des Fischaugenobjektivs hinzuzufügen
Schneiden Sie das Bild mit Pythonista auf abgerundete Ecken
Versuchen Sie, Doujin-Musikdaten mit Pandas zu aggregieren
Konvertieren Sie PDF in Bilder (JPEG / PNG) mit Python
Generieren und veröffentlichen Sie Dummy-Bilddaten mit Django
Ich habe versucht, durch Schaben ein Bild zu bekommen
Fügen Sie einem leeren Array mit numpy Zeilen hinzu
Senden Sie eine E-Mail mit Python an Spushis Adresse
Erstellen Sie eine Bildkompositions-App mit Flask + Pillow
Versuchen Sie, das Mensch-Maschine-Diagramm mit Python zu lösen
Versuchen Sie, das Dokument der Azure-Dokumentdatenbank mit pydocumentdb zu extrahieren
Versuchen Sie, mit Python eine Lebenskurve zu zeichnen
Versuche mit EV3 und PC zu kommunizieren! (MQTT)
Ich möchte OREMO mit setParam sein!
So testen Sie den Friends-of-Friends-Algorithmus mit pyfof
Versuchen Sie, Ihr Gesicht mit dem AB-Test zu montieren
Versuchen Sie, in Python einen "Entschlüsselungs" -Code zu erstellen
So lesen Sie ein Array mit Pythons ConfigParser
Erstellen Sie ein Bild mit Zeichen mit Python (Japanisch)
[Python] Generiert automatisch ein Beispielbild für eine Animationsliste.
Ich habe versucht, die Strichzeichnung mit Deep Learning aus dem Bild zu extrahieren
Ich habe versucht, ein Objekt mit M2Det zu erkennen!
Versuchen Sie, mit Python eine Diedergruppe zu bilden
Versuchen Sie, mit Node.js einen HTTP-Server zu erstellen
Versuchen Sie, ein Objekt mit RaspberryPi zu erkennen ~ Teil 1: Vergleich der Erkennungsgeschwindigkeit ~
Versuchen Sie, mit VisualStudioCode eine Umgebung für MayaPython zu erstellen