[Verschiedene Bildanalysen mit Plotly] Dynamische Visualisierung mit Plotly [Python, Bild]

Lassen Sie uns das Bild einfach mit Plot analysieren

dd.gif

Umgebung

python==3.8 plotly==4.10.0 scikit-image==0.17.2 requests==2.24.0 Pillow==7.2.0 matplotlib==3.3.2

Umgang mit gängigen Bildern

Zuerst werde ich Kissen verwenden

import matplotlib.pyplot as plt
from PIL import Image
import requests
import io

url = 'https://upload.wikimedia.org/wikipedia/commons/thumb/0/00/Crab_Nebula.jpg/240px-Crab_Nebula.jpg'
img = Image.open(io.BytesIO(requests.get(url).content))

plt.figure(figsize=(5,5))
plt.subplot(111)
plt.imshow(img)

image.png

Ich konnte das Bild mit dem üblichen Matplot anzeigen Machen wir es schwarz und weiß

gray_img = img.convert('L')

plt.figure(figsize=(5,5))
plt.subplot(111)
plt.imshow(gray_img)

Das Bildobjekt kann mit "konvertieren" schwarzweiß sein

Bildverarbeitung mit Skimage und Plotly

Das Schöne an der Anzeige von Bildern mit Plotly ist, dass Sie zoomen usw. können.

import plotly.express as px
from skimage import io
img_sk = io.imread('https://upload.wikimedia.org/wikipedia/commons/thumb/0/00/Crab_Nebula.jpg/240px-Crab_Nebula.jpg')
fig = px.imshow(img_sk)
fig.show()

dd.gif

Sie können auch mit Kissen gelesene Bilder verarbeiten

fig = px.imshow(gray_img, color_continuous_scale='gray')
fig.show()

image.png

Erstellen Sie Konturlinien im Bild

Sie können der Helligkeit des Bildes Konturlinien hinzufügen

Konturdiagramm, das den Wert von Z färbt Überwachen Sie die Werte von Anfang bis Ende Geben Sie den Abstand der Konturlinien zur Größe an Wenn Sie Ende und Größe gleich festlegen, können Sie das Teil extrahieren, das zum angegebenen Wert wird Mit anderen Worten, es kann zur Konturextraktion usw. verwendet werden.

import plotly.graph_objects as go
fig = px.imshow(gray_img, color_continuous_scale='gray')
fig.add_trace(go.Contour(z=gray_img, showscale=True,
                         contours=dict(start=0, end=30, size=30,coloring='lines'),line_width=1))

fig.show()

image.png

import plotly.express as px
import plotly.graph_objects as go
from skimage import data
img_camera = data.camera()
fig = px.imshow(img_camera, color_continuous_scale='gray')

fig.add_trace(go.Contour(z=img_camera, showscale=False,
                         contours=dict(start=0, end=70, size=70, coloring='lines'),
                         line_width=2))
fig.show()

image.png

Erstellen Sie ein Farbkanalhistogramm aus Plotly

from plotly.subplots import make_subplots
from skimage import data

img_sk.shape

#(240, 240, 3)

plt.imshow(img_sk)


img_r = img_sk.copy()
img_r[:, :, 1] = 0
img_r[:, :, 2] = 0
plt.imshow(img_r)

img_g = img_sk.copy()
img_g[:, :, 0] = 0
img_g[:, :, 2] = 0
plt.imshow(img_g)

img_b = img_sk.copy()
img_b[:, :, 0] = 0
img_b[:, :, 1] = 0
plt.imshow(img_b)

image.png

image.png

image.png

image.png

Nicht null bis hist

ff=go.Figure()
ff.add_trace(go.Histogram(x=img_r.flatten()[img_r.flatten()!=0],marker_color='red',name='red'))
ff.add_trace(go.Histogram(x=img_g.flatten()[img_g.flatten()!=0],marker_color='green',name='green'))
ff.add_trace(go.Histogram(x=img_b.flatten()[img_b.flatten()!=0],marker_color='blue',name='blue'))
ff.update_layout(barmode='overlay')
ff.update_traces(opacity=0.3)
ff.update_layout(height=400)

ff.show()

image.png

Beim Erweitern scheint 10 oder weniger die Hauptmenge zu sein. Überprüfen Sie daher die Verteilung von 10 oder mehr

ff=go.Figure()
ff.add_trace(go.Histogram(x=img_r.flatten()[img_r.flatten()>10],marker_color='red',name='red'))
ff.add_trace(go.Histogram(x=img_g.flatten()[img_g.flatten()>10],marker_color='green',name='green'))
ff.add_trace(go.Histogram(x=img_b.flatten()[img_b.flatten()>10],marker_color='blue',name='blue'))
ff.update_layout(barmode='overlay')
ff.update_traces(opacity=0.3)
ff.update_layout(height=400)

ff.show()

image.png

Es sieht so aus, wenn es ordentlich aufgeteilt ist

image.png

Die Bestätigung für Schwarzweiß lautet wie folgt

from skimage.color import rgb2gray

gray_img = rgb2gray(img_sk)


ff=go.Figure()
ff.add_trace(go.Histogram(x=gray_img.flatten()[gray_img.flatten()!=0],marker_color='pink',name='gray'))
ff.update_layout(barmode='overlay')
ff.update_traces(opacity=0.8)
ff.update_layout(height=400)

ff.show()

image.png

ff=go.Figure()
ff.add_trace(go.Histogram(x=gray_img.flatten()[gray_img.flatten()>0.1],marker_color='pink',name='gray'))
ff.update_layout(barmode='overlay')
ff.update_traces(opacity=0.8)
ff.update_layout(height=400)

ff.show()

image.png

Übrigens, wie man das Bild in der Abbildung anzeigt

Appell an die gesamte Oberfläche des Diagramms

import plotly.express as px
fig = px.scatter(x=[0, 1, 2, 3, 4], y=[0, 1, 4, 9, 16])

fig.add_layout_image(
        dict(
            source="https://upload.wikimedia.org/wikipedia/commons/thumb/0/00/Crab_Nebula.jpg/240px-Crab_Nebula.jpg ",
            xref="x",
            yref="y",
            x=0,
            y=16,
            sizex=4,
            sizey=15,
            sizing="stretch")
)

fig.update_xaxes(title_text="picture No")
fig.update_yaxes(title_text="view par day", hoverformat=".3f")

fig.show()

image.png

Appell sanft auf den Rücken (unten)

import plotly.express as px
fig = px.scatter(x=[0, 1, 2, 3, 4], y=[0, 1, 4, 9, 16])

fig.add_layout_image(
        dict(
            source="https://upload.wikimedia.org/wikipedia/commons/thumb/0/00/Crab_Nebula.jpg/240px-Crab_Nebula.jpg ",
            xref="x",
            yref="y",
            x=0,
            y=16,
            sizex=4,
            sizey=15,
            sizing="stretch",
            opacity=0.5,
            layer="below")
)

fig.update_xaxes(title_text="picture No")
fig.update_yaxes(title_text="view par day", hoverformat=".3f")

fig.show()

image.png

Machen Sie es kleiner und fügen Sie einen Stick hinzu oder fügen Sie Text ein

import plotly.express as px
fig = px.scatter(x=[0, 1, 2, 3, 4], y=[0, 1, 4, 9, 16])

fig.add_layout_image(
        dict(
            source="https://upload.wikimedia.org/wikipedia/commons/thumb/0/00/Crab_Nebula.jpg/240px-Crab_Nebula.jpg ",
            xref="x",
            yref="y",
            x=1.68,
            y=16,
            sizex=3,
            sizey=3)
)

fig.update_layout(
    annotations=[
        dict(
            x=0.5,
            y=0.8,
            xref="paper",
            yref="paper",
            showarrow=True,
            arrowhead=0,
            opacity=0.5,
            ax=190,
            ay=100,
        )#,
#        dict(x=,y=,xref="paper",yref="paper",showarrow=True,arrowhead=0,opacity=0.5,ax=,ay=,)
    ]
)

fig.update_xaxes(title_text="picture No")
fig.update_yaxes(title_text="view par day", hoverformat=".3f")

fig.show()

Das Layoutbild des Bildes entspricht der Position des Diagramms Die x, y-Achse des Diagramms entspricht der oberen linken Position x, y des Bildes

Der Balken ist 0,0 unten links im Bild Das Zentrum ist 0,5,0,5 ax und ay stellen die Länge des Stabdrahtes dar und erstrecken sich von den angegebenen Positionen x und y bis zu der Position, an der der Vektor der Stäbe in Richtung der x-Achse und der Richtung der y-Achse kombiniert wird.

image.png

das ist alles

Alles was Spaß macht, wenn man es vorerst bewegen kann

Recommended Posts

[Verschiedene Bildanalysen mit Plotly] Dynamische Visualisierung mit Plotly [Python, Bild]
[Mit Plotly auf die Karte schreiben] Dynamische Visualisierung mit Plotly [Python]
[Zeitreihen mit Handlung] Dynamische Visualisierung mit Handlung [Python, Aktienkurs]
Datenanalyse beginnend mit Python (Datenvisualisierung 1)
Datenanalyse beginnend mit Python (Datenvisualisierung 2)
[Sprechen Sie über die Zeichnungsstruktur von plotly] Dynamische Visualisierung mit plotly [Python]
Datenanalyse mit Python 2
Medizinische Bildanalyse mit Python 1 (MRT-Bild mit SimpleITK lesen)
Verschiedene Python-Visualisierungstools
Sprachanalyse mit Python
Bildverarbeitung mit Python
Sprachanalyse mit Python
Dynamische Analyse von Valgrind
Datenanalyse mit Python
Visualisierung der Logistik mit Python
[OpenCV / Python] Ich habe versucht, Bilder mit OpenCV zu analysieren
[Python] Morphologische Analyse mit MeCab
Bildbearbeitung mit Python OpenCV
Emotionsanalyse von Python (word2vec)
Sortieren von Bilddateien mit Python (2)
Sortieren von Bilddateien mit Python (3)
Bildverarbeitung mit Python (Teil 1)
Tweet mit Bild in Python
Bilddateien mit Python sortieren
Planare Skelettanalyse mit Python
Bearbeiten Sie verschiedene Datenbanken mit Python
Japanische morphologische Analyse mit Python
Bildverarbeitung mit Python (3)
Muskel-Ruck-Analyse mit Python
[Python] Bildverarbeitung mit Scicit-Image
Hauptkomponentenanalyse zum Anfassen mit PyCaret [Normalisierung + Visualisierung (grafisch)] Memo
Schneiden Sie ein Bild mit Python aus
[Python] Verwenden von OpenCV mit Python (Bildfilterung)
Dreidimensionale Skelettstrukturanalyse mit Python
[Python] Verwenden von OpenCV mit Python (Bildtransformation)
Impedanzanalyse (EIS) mit Python [impedance.py]
Dynamischer Proxy mit Python, Ruby, PHP
Text Mining mit Python ① Morphologische Analyse
Die Bildverarbeitung mit Python 100 klopft an die Binärisierung Nr. 3
Lassen Sie uns mit Python Image Scraping durchführen
Visualisieren Sie Ihre Daten ganz einfach mit Python Seaborn.
Finden Sie Bildähnlichkeit mit Python + OpenCV
100 Bildverarbeitung mit Python Knock # 2 Graustufen
Einführung in die Bildanalyse opencv python
Logistische Regressionsanalyse Selbst erstellt mit Python
Sende Bild mit Python und speichere mit PHP
Erzeugung von Verlaufsbildern mit Python [1] | np.linspace
Rufen Sie mit BeautifulSoup + Python PowerShell-Befehle von einer Website für dynamische Malware-Analysen ab
Bildverarbeitung mit Python 100 Knock # 4 Otsu-Binarisierung (Diskriminierungsanalyse-Methode)
[Kapazitätsanzeige, Gantt-Diagramm, Benutzeroberfläche] Plotly dynamische Visualisierung [Python, Messanzeige, Gantt-Diagramm]
Grundlagen der binärisierten Bildverarbeitung durch Python
Bildverarbeitung mit Python 100 Knock # 10 Medianfilter
Anwendung von Python: Datenvisualisierung Teil 3: Verschiedene Grafiken
HTML-Mail mit Bild zum Senden mit Python
[In-Database Python Analysis Tutorial mit SQL Server 2017]
Zweidimensionale Analyse des gesättigten und ungesättigten Permeationsflusses mit Python
Erstellen Sie mit Python + PIL ein Dummy-Image.
100 Bildverarbeitung mit Python Knock # 8 Max Pooling
Maschinelles Lernen mit Python (2) Einfache Regressionsanalyse
Einführung in das Auffüllen von Python-Bildern Auffüllen von Bildern mit ImageDataGenerator