python==3.8 plotly==4.10.0 scikit-image==0.17.2 requests==2.24.0 Pillow==7.2.0 matplotlib==3.3.2
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)
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
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()
Sie können auch mit Kissen gelesene Bilder verarbeiten
fig = px.imshow(gray_img, color_continuous_scale='gray')
fig.show()
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()
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()
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)
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()
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()
Es sieht so aus, wenn es ordentlich aufgeteilt ist
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()
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()
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()
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()
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.
Alles was Spaß macht, wenn man es vorerst bewegen kann
Recommended Posts