Italian AUTO RITAGLIO IMMAGINE

Matteo Granatiero

Active Member
Licensed User
Salve, sarei disposto anche con una piccola donazione sapere come ritagliare un immagine eliminando per esempio lo sfondo bianco. Vi allego un immagine per essere più chiaro.
P.S magari con la possibilità di poter scegliere il colore di sfondo che deve “ricercare” ed eliminare.
 

Attachments

  • D2673239-3858-4C0C-81F8-466B567A9356.jpeg
    D2673239-3858-4C0C-81F8-466B567A9356.jpeg
    227.1 KB · Views: 181

sirjo66

Well-Known Member
Licensed User
Longtime User
Io ho già fatto una cosa simile, però in VB.NET, ma penso che la cosa non cambi, l'importante è la logica dell'analisi.
Bisogna però capire bene cosa vuoi fare.
Innanzitutto bisogna sapere in che formato hai l'immagine, perchè se è un PNG hai il bianco di sfondo che è bianco uniforme, mentre se è una JPG (da quel che mi sembra è così), il bianco di sfondo non è uniforme ma se ingrandisce bene l'immagine vedrai che viene modificato.
Ho realizzato anche il codice che identifica queste variazioni e le elimina.
Ma fammi capire bene, tu devi solo eliminare il bianco che c'è intorno o devi fare anche altre cose ??
L'immagine che hai postato non andrebbe comunque bene, visto che in alto non c'è bianco da togliere, e sotto c'è una riga nera per cui verrebbe eliminato poco bianco.
 

Matteo Granatiero

Active Member
Licensed User
Ciao, allora in pratica dovrei eliminare lo sfondo (magari di qualsiasi colore esso sia, potendo magari scegliere il colore da eliminare in modo tale da agevolare il ritaglio nel migliore dei modi) Ho fatto l’esempio di questo paio di jeans dove magari la foto è stata scattata su uno sfondo Verde e selezionando (più o meno il colore da eliminare come ti ho detto prima) riesce a ritagliare l’immagine facendo rimanere solamente la sagoma dei jeans. L’immagine in teoria è in JPG.
 

LucaMs

Expert
Licensed User
Longtime User
"Ritargliare" un'immagine è una cosa molto difficile perfino "a mano" usando dei tool grafici, se non c'è una differenza molto netta tra IL colore del contorno e QUELLO dello sfondo.

Se non è come detto, sempre a mano, o si taglia un paio di pixel in meno, rispetto al contorno, o si sfuma quest'ultimo.

Farlo fare a un sw, su figure con contorno non esattamente monocolore e oltretutto sfondo non monocromatico (che è la stessa cosa, ma so parlare 😄 e quindi non ripeto) è roba da intelligenza artificiale!

Cmq, lessi 🐶 una domanda ana e poi loga... devo solo ritrovarla (ma non aspettarti miracoli)...
 
Last edited:

Matteo Granatiero

Active Member
Licensed User
Questo era uno che... forse potrebbe essere utile (da leggere tutto!)
https://www.b4x.com/android/forum/t...anel-outside-its-contained-image.97623/page-2

Ciao, ma questo fu un altro mio quesito che fortunatamente ho risolto tempo fa, utilizzando delle cornici ben definite. Adesso senza confondere la mia richiesta iniziale di questa discussione vorrei appunto eliminare in modo automatico lo sfondo che sarà di sicuro netto come contrasto rispetto al famoso paio di jeans. Grazie mille per le risposte veloci e dettagliate ! ☺️
 

sirjo66

Well-Known Member
Licensed User
Longtime User
Ciao, allora in pratica dovrei eliminare lo sfondo (magari di qualsiasi colore esso sia, potendo magari scegliere il colore da eliminare in modo tale da agevolare il ritaglio nel migliore dei modi) Ho fatto l’esempio di questo paio di jeans dove magari la foto è stata scattata su uno sfondo Verde e selezionando (più o meno il colore da eliminare come ti ho detto prima) riesce a ritagliare l’immagine facendo rimanere solamente la sagoma dei jeans. L’immagine in teoria è in JPG.

Come ti ha detto LucaMs quello che vuoi fare tu è più da "intelligenza artificiale" che da software normale, per cui su Android mooooolto difficile da realizzare se non impossibile.
Come hai detto tu il file è un JPG per cui lo sfondo non è uniforme ma sono sfumature, difficile capire il contorno.

Nel mio software mi ero limitato a riconoscere il bianco intorno (o meglio una serie di sfumature di bianco) tagliando quindi a destra-sinistra-sopra-sotto tutta quella parte bianca in più che non serviva, per poi ridimensionarla a 1000px come vuole appunto Amazon
 

Matteo Granatiero

Active Member
Licensed User
Come ti ha detto LucaMs quello che vuoi fare tu è più da "intelligenza artificiale" che da software normale, per cui su Android mooooolto difficile da realizzare se non impossibile.
Come hai detto tu il file è un JPG per cui lo sfondo non è uniforme ma sono sfumature, difficile capire il contorno.

Nel mio software mi ero limitato a riconoscere il bianco intorno (o meglio una serie di sfumature di bianco) tagliando quindi a destra-sinistra-sopra-sotto tutta quella parte bianca in più che non serviva, per poi ridimensionarla a 1000px come vuole appunto Amazon

Potresti condividere il sorgente? magari riesco ad adattarlo alle mie esigenze per poi condividerlo qui casomai a qualcun altro servisse. Grazie mille in anticipo ☺️
 

sirjo66

Well-Known Member
Licensed User
Longtime User
Il sorgente è in VB.NET e utilizza tutta una serie di e.Graphics.Draw... per cui non portabile su Android e nemmeno facilmente trascrivibile.
Tu inoltre devi fare un "ritaglio" intorno all'immagine, il mio codice toglie solo il bianco sui 4 lati
 
Top