python==3.8 plotly==4.10.0 scikit-image==0.17.2 requests==2.24.0 Pillow==7.2.0 matplotlib==3.3.2
J'utiliserai d'abord un oreiller
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)
J'ai pu afficher l'image avec le matplot habituel Faisons en noir et blanc
gray_img = img.convert('L')
plt.figure(figsize=(5,5))
plt.subplot(111)
plt.imshow(gray_img)
l'objet image peut être en noir et blanc en utilisant convert
La bonne chose à propos de l'affichage d'images avec intrigue est que vous pouvez zoomer, etc.
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()
Vous pouvez également gérer les images lues avec un oreiller
fig = px.imshow(gray_img, color_continuous_scale='gray')
fig.show()
Vous pouvez ajouter des lignes de contour à la luminosité de l'image
Tracé de contour qui colore la valeur de Z Surveillez les valeurs du début à la fin Spécifiez l'espacement des courbes de niveau avec la taille En rendant la fin et la taille identiques, vous pouvez extraire la partie qui devient la valeur spécifiée En d'autres termes, il peut être utilisé pour l'extraction de contours, etc.
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)
Non nul à 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()
Lors de l'expansion, il semble que 10 ou moins est le principal, alors vérifiez la distribution de 10 ou plus
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()
Ça ressemble à ça quand il est bien divisé
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()
Appel à toute la surface du graphique
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()
Appelez doucement sur le dos (ci-dessous)
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()
Réduisez-le et ajoutez un bâton ou mettez du texte
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()
L'image de mise en page de l'image est conforme à la position du tracé L'axe x, y du tracé correspond à la position supérieure gauche x, y de l'image
La barre est 0,0 en bas à gauche de l'image Le centre est 0,5,0,5 ax et ay représentent la longueur de la barre et s'étendent des positions x et y spécifiées jusqu'à la position où le vecteur des barres étendu dans la direction de l'axe x et la direction de l'axe y est combiné.
N'importe quelle théorie amusante si vous pouvez la déplacer pour le moment