Claude può individuare ed etichettare regioni di un'immagine (ad esempio, restituendo bounding box per tabelle, campi di moduli, elementi di grafici o componenti dell'interfaccia utente). Questa guida spiega come Claude ridimensiona le immagini prima di elaborarle e come lavorare con le coordinate in pixel che restituisce, in modo che box e punti siano allineati con la tua immagine originale.
Ne avrai bisogno per pipeline OCR, estrazione di moduli, analisi di grafici, individuazione di elementi dell'interfaccia utente e qualsiasi attività in cui agisci su una regione specifica di un'immagine. Per l'invio di immagini, i formati supportati e i limiti di risoluzione per modello, consulta Visione.
Claude funziona meglio con coordinate in pixel assolute. Richiedile esplicitamente nel tuo prompt. Ad esempio: "Restituisci il bounding box di ogni tabella come [x1, y1, x2, y2] (angolo in alto a sinistra e angolo in basso a destra) in coordinate in pixel." Claude non funziona bene quando chiedi coordinate normalizzate, ad esempio: "Restituisci le coordinate del bounding box tra 0 e 1000." Chiedi sempre coordinate in pixel e normalizza nel tuo codice se necessario. Per ottenere le coordinate come JSON leggibile dalla macchina invece che come prosa, definisci uno schema con gli output strutturati, ad esempio un oggetto con un array [x1, y1, x2, y2] per ogni elemento rilevato.
Le coordinate seguono la convenzione standard delle immagini: l'origine (0, 0) è l'angolo in alto a sinistra dell'immagine, con x che aumenta verso destra e y che aumenta verso il basso. Le coordinate che Claude restituisce sono posizioni in pixel nell'immagine che Claude vede: la tua immagine dopo che Claude l'ha ridimensionata per adattarla alla risoluzione nativa del modello (consulta Come Claude ridimensiona e aggiunge padding alle immagini). Per ottenere coordinate che puoi usare direttamente, puoi pre-ridimensionare la tua immagine in modo che le coordinate corrispondano una a una all'immagine che hai (consulta Ridimensiona la tua immagine prima del caricamento), oppure riscalare le coordinate che Claude restituisce (consulta Riscala le coordinate quando non puoi pre-ridimensionare).
Il ragionamento spaziale di Claude ha dei limiti (consulta Limitazioni). L'accuratezza delle coordinate è migliore quando specifichi il formato di coordinate atteso nel tuo prompt e verifichi visivamente i risultati a campione prima di elaborare su larga scala. Gli elementi piccoli perdono precisione quando un'immagine viene ridotta: per bersagli fini, ritaglia la regione di interesse e invia il ritaglio (applica alle coordinate restituite un offset pari all'origine del ritaglio), oppure usa un modello del livello ad alta risoluzione. Per il supporto PDF, le pagine vengono rasterizzate in immagini lato server a dimensioni che non controlli, quindi le coordinate restituite non possono essere mappate in modo affidabile sulla pagina. Per lavorare con le coordinate su contenuti PDF, rasterizza tu stesso le pagine in immagini e usa l'approccio del pre-ridimensionamento.
Claude trova la dimensione più grande che preserva le proporzioni e che soddisfa entrambi i limiti di immagine del modello:
⌈width / 28⌉ × ⌈height / 28⌉ non supera il budget di token visivi del modello (1568 token nel livello standard, 4784 nel livello ad alta risoluzione).Consulta Risoluzione e costo in token per sapere quali modelli appartengono a quale livello.
Per quasi tutte le foto e gli screenshot, è il limite di token visivi a determinare la dimensione finale. Il limite del lato prevale solo per immagini allungate come panorami o screenshot verticali di telefoni. Calcola la dimensione con l'implementazione di riferimento invece di scalare manualmente alla lunghezza del lato: uno screenshot 1920×1080 viene ridimensionato a 1456×819, non a 1568×882, e assumere il limite del lato sposta ogni coordinata sensibilmente fuori bersaglio.
Il limite di token può anche attivare un ridimensionamento quando nessun lato supera il limite del lato. Trascurare questo aspetto è la causa più comune di coordinate disallineate. Ad esempio, una pagina A4 scansionata a 130 DPI è di 1075×1520 pixel: entrambi i lati sono sotto i 1568 px, ma costa 39 × 55 = 2145 token visivi, quindi Claude la ridimensiona a 924×1307.
Questo esempio presuppone un modello del livello di risoluzione standard. Un modello del livello ad alta risoluzione non ridimensiona la stessa scansione: 2145 token rientrano nel suo budget di 4784 token, quindi le coordinate che restituisce si mappano direttamente sull'originale 1075×1520. I livelli dei modelli sono elencati in Risoluzione e costo in token.
Claude poi aggiunge padding a ogni immagine, ridimensionata o meno, fino al successivo multiplo di 28 pixel sui bordi inferiore e destro (924×1307 diventa 924×1316 nell'esempio). Il padding non contiene alcun contenuto: Claude percepisce l'immagine con padding, ma il contenuto della pagina occupa sempre e solo la regione ridimensionata senza padding. Normalizza o riscala sempre in base alle dimensioni ridimensionate, non alle dimensioni con padding; dividere per le dimensioni con padding scala ogni coordinata di una piccola quantità.
L'approccio più affidabile è ridimensionare tu stesso la tua immagine prima del caricamento, in modo che l'immagine che hai sia esattamente l'immagine che Claude vede e le coordinate che Claude restituisce non richiedano alcuna conversione.
Verifica prima a quale livello di risoluzione appartiene il tuo modello (consulta Risoluzione e costo in token) e passa i limiti di lato e di token corrispondenti. La seguente implementazione di riferimento calcola la dimensione esatta a cui Claude ridimensiona un'immagine:
import math
def count_image_tokens(width: int, height: int) -> int:
"""Visual tokens consumed by an image: one token per 28x28 pixel patch."""
return math.ceil(width / 28) * math.ceil(height / 28)
def resized_size(
width: int,
height: int,
max_edge: int = 1568,
max_tokens: int = 1568,
) -> tuple[int, int]:
"""The size Claude resizes an image to before padding.
Defaults are for the standard resolution tier. For high-resolution-tier
models, use max_edge=2576 and max_tokens=4784. Returns (width, height).
Images that already fit within the limits are returned unchanged.
"""
def fits(w: int, h: int) -> bool:
return (
math.ceil(w / 28) * 28 <= max_edge
and math.ceil(h / 28) * 28 <= max_edge
and count_image_tokens(w, h) <= max_tokens
)
if fits(width, height):
return (width, height)
if height > width:
resized_h, resized_w = resized_size(height, width, max_edge, max_tokens)
return (resized_w, resized_h)
# Ricerca binaria lungo il lato maggiore per la dimensione più grande che
# preserva le proporzioni e rientra nei limiti.
aspect_ratio = width / height
lo, hi = 1, width # lo always fits; hi never fits
while lo + 1 < hi:
mid = (lo + hi) // 2
if fits(mid, max(round(mid / aspect_ratio), 1)):
lo = mid
else:
hi = mid
return (lo, max(round(lo / aspect_ratio), 1))
# L'esempio A4 da "Come Claude ridimensiona e riempie le immagini":
print(resized_size(1075, 1520)) # (924, 1307)
# Per applicare il ridimensionamento, usa la tua libreria di immagini, ad esempio Pillow:
# image.resize(resized_size(*image.size))[x, y] in coordinate in pixel."L'endpoint di conteggio dei token stima il costo in token di un'immagine a partire dalle sue dimensioni senza elaborarla completamente, quindi un conteggio riuscito non significa che l'immagine rientri nei limiti di richiesta dell'API Messages. Un'immagine può essere conteggiata con successo ed essere comunque rifiutata quando la invii.
Se non puoi pre-ridimensionare (ad esempio, quando l'immagine proviene da un sistema a monte che non puoi modificare), usa l'helper di ridimensionamento di Ridimensiona la tua immagine prima del caricamento per recuperare le dimensioni che Claude ha visto, quindi mappa le coordinate che Claude restituisce in coordinate normalizzate o di nuovo sulla tua immagine originale. Claude ridimensiona le immagini troppo grandi invece di rifiutarle, fino ai limiti di richiesta dell'API. Oltre tali limiti la richiesta fallisce invece con un errore di validazione. Passa i limiti del livello corrispondenti al modello che hai chiamato: i limiti del livello sbagliato recuperano dimensioni ridimensionate errate e spostano silenziosamente ogni coordinata. Questo approccio richiede di conoscere le dimensioni in pixel dell'immagine che hai caricato, quindi non si applica ai caricamenti di PDF.
# Questo helper chiama resized_size dall'esempio di ridimensionamento in questa pagina.
def to_relative_coordinates(
x: float,
y: float,
original_width: int,
original_height: int,
max_edge: int = 1568,
max_tokens: int = 1568,
) -> tuple[float, float]:
"""Map a pixel coordinate returned by Claude to relative coordinates in [0, 1].
Pass the dimensions of the image you uploaded. For high-resolution-tier
models, use max_edge=2576 and max_tokens=4784.
"""
resized_w, resized_h = resized_size(
original_width, original_height, max_edge, max_tokens
)
return (x / resized_w, y / resized_h)
# Un angolo di tabella che Claude restituisce a (462, 653.5) sulla pagina A4 ridimensionata
# si mappa sull'originale 1075x1520 così:
rel_x, rel_y = to_relative_coordinates(462, 653.5, 1075, 1520)
print((rel_x * 1075, rel_y * 1520)) # (537.5, 760.0)Il padding viene applicato solo ai bordi inferiore e destro, quindi l'origine non si sposta e una riscalatura lineare per asse è sufficiente. Limita (clamp) le coordinate restituite alle dimensioni ridimensionate prima di riscalare, in modo che un punto leggermente al di fuori dell'immagine non possa essere mappato al di fuori della tua immagine originale.
Le coordinate relative si moltiplicano per qualsiasi superficie su cui agisci: l'immagine originale, una scansione a piena risoluzione o uno schermo. Quando agisci su uno schermo e i pixel dello screenshot differiscono dalle coordinate logiche (display HiDPI), dividi anche per il fattore di scala del display. Le indicazioni sulla scalatura dello strumento per l'uso del computer trattano questo schema.
Le Agent Skills sono capacità modulari che estendono le funzionalità di Claude. Ogni Skill racchiude istruzioni, metadati e risorse opzionali (script, modelli) che Claude usa automaticamente quando pertinenti.
Dai a Claude il controllo di screenshot, mouse e tastiera di un ambiente desktop con lo strumento per l'uso del computer.
Elabora PDF con Claude. Estrai testo, analizza grafici e comprendi il contenuto visivo dei tuoi documenti.
Conta i token in un messaggio prima di inviarlo a Claude. Usa i conteggi dei token per gestire i limiti di velocità e i costi, prendere decisioni di instradamento dei modelli e adattare i prompt a una lunghezza target.
Was this page helpful?