{"id":6089,"date":"2009-01-26T10:00:52","date_gmt":"2009-01-26T10:00:52","guid":{"rendered":"http:\/\/www.knowhowtransfer.com\/notes-on-sharpening-2\/"},"modified":"2014-12-13T14:52:46","modified_gmt":"2014-12-13T14:52:46","slug":"nitidezza-contrasto-sharpening","status":"publish","type":"post","link":"https:\/\/www.knowhowtransfer.com\/store\/it\/nitidezza-contrasto-sharpening\/","title":{"rendered":"Nitidezza, contrasto e sharpening"},"content":{"rendered":"<blockquote>\n<p><em>Un nuovo approccio sperimentale alla maschera di contrasto con alto raggio e bassa intensit\u00e0 (o maschera di contrasto inversa).<\/em><br \/><em> Come separare la maschera di contrasto per bordi e texture nella stessa gamma di frequenze.<\/em><br \/><em> Scomposizione piramidale gaussiana, bilaterale e mista come piattaforma per sviluppare nuove strategie per la maschera di contrasto.\u00a0<\/em><\/p>\n<p>&nbsp;<\/p>\n<p><em>di Davide Barranca<\/em><\/p>\n<\/blockquote>\n<h3>1. Introduzione<\/h3>\n<p>Questo articolo \u00e8 una raccolta di note personali, un work-in-progress sul tema della maschera di contrasto (sharpening, o unsharp mask). Sebbene per formazione preferisco trovare risposte pratiche all\u2019interno di Photoshop, non mi dispiace l\u2019approccio teorico: probabilmente non sar\u00f2 rigoroso, ma il mio scopo \u00e8 quello di capire meglio il soggetto e condividere le mie esperienze con chi voglia integrarle o semplicemente commentare le tecniche esposte. Far\u00f2 un uso estremamente semplice della matematica (limitatamente all\u2019algebra), ma chi volesse saltare formule e grafici per passare subito alle parti pi\u00f9 pratiche non avr\u00e0 la mia disapprovazione; spero comunque che tutto possa servire per stimolare le proprie personali ricerche.<\/p>\n<p>Quello che vorrei suggerire con questo articolo \u00e8, tra l&#8217;altro, un metodo per modulare lo sharpening sui diversi elementi di un&#8217;immagine (anche se appartenenti allo stesso range di frequenze) e un nuovo approccio alla maschera di contrasto inversa (alto raggio, bassa quantit\u00e0). Inoltre approfondir\u00f2 la scomposizione piramidale (gaussiana, bilaterale e mista) per dimostrare come sia un ottimo punto di partenza per costruire le proprie strategie di sharpening.<\/p>\n<div id=\"attachment_6043\" style=\"width: 815px\" class=\"wp-caption alignnone\"><img decoding=\"async\" aria-describedby=\"caption-attachment-6043\" class=\"wp-image-6043 size-full\" src=\"https:\/\/www.knowhowtransfer.com\/store\/wp-content\/uploads\/2014\/05\/01-01.jpg\" alt=\"01-01\" width=\"805\" height=\"299\" \/><p id=\"caption-attachment-6043\" class=\"wp-caption-text\">(Fig. 1.1) Immagine originale e una versione ricavata applicando alcune delle tecniche esposte in questo articolo.<\/p><\/div>\n<h3>2. Sharpening Gaussiano<\/h3>\n<p>Per cominciare vorrei ribadire un fatto probabilmente noto, cio\u00e8 che la maschera di contrasto in Photoshop si chiama UnSharp Mask (USM): \u201cunsharp\u201d, cio\u00e8 \u201cnon nitida\u201d, perch\u00e9 assume una sottrazione tra l\u2019immagine originale ed una sua versione sfocata. User\u00f2 spesso le sottrazioni, per cui penso sia utile un piccolo ripasso che spieghi meglio perch\u00e9 sfocatura e nitidezza siano parenti stretti.<\/p>\n<p>In tutto l\u2019articolo verranno usate immagini in scala di grigio: eliminare il colore \u00e8 solo uno stratagemma per concentrare l\u2019attenzione sul contrasto, senza altre distrazioni: per riportare l\u2019effetto su immagini a colori \u00e8 possibile convertire in Lab e usare il canale della Luminosit\u00e0, oppure estrarre da RGB o CMYK la luminosit\u00e0 con un livello riempito di bianco (o nero) in modalit\u00e0 di fusione Colore. La prima immagine (per la quale ringrazio l\u2019amico e fotografo Roberto Bigano), \u00e8 l\u2019originale; a seguire la versione sfocata e la sottrazione:<\/p>\n<div id=\"attachment_6044\" style=\"width: 880px\" class=\"wp-caption alignnone\"><img decoding=\"async\" aria-describedby=\"caption-attachment-6044\" class=\"wp-image-6044 size-full\" src=\"https:\/\/www.knowhowtransfer.com\/store\/wp-content\/uploads\/2014\/05\/notes_on_sharpening_02-01.jpg\" alt=\"notes_on_sharpening_02-01\" width=\"870\" height=\"645\" \/><p id=\"caption-attachment-6044\" class=\"wp-caption-text\">(Fig. 2.1) Immagine originale: versione in scala di grigio del dipinto di Paolo de Matteis \u201cLe sante Maria, Maddalena e Dorotea\u201d (particolare) Galleria Nazionale di Cosenza, Italia (Fotografia \u00a9 Roberto Bigano).<\/p><\/div>\n<p>&nbsp;<\/p>\n<div id=\"attachment_6048\" style=\"width: 880px\" class=\"wp-caption alignnone\"><img decoding=\"async\" aria-describedby=\"caption-attachment-6048\" class=\"wp-image-6048 size-full\" src=\"https:\/\/www.knowhowtransfer.com\/store\/wp-content\/uploads\/2014\/05\/notes_on_sharpening_02-02.jpg\" alt=\"notes_on_sharpening_02-02\" width=\"870\" height=\"203\" \/><p id=\"caption-attachment-6048\" class=\"wp-caption-text\">(Fig. 2.2) Immagine originale, versione sfocata e risultato della sottrazione.<\/p><\/div>\n<p>&nbsp;<\/p>\n<p>Aggiungendo il risultato della sottrazione all\u2019originale si ottiene la versione pi\u00f9 nitida:<\/p>\n<div id=\"attachment_6049\" style=\"width: 880px\" class=\"wp-caption alignnone\"><img decoding=\"async\" aria-describedby=\"caption-attachment-6049\" class=\"wp-image-6049 size-full\" src=\"https:\/\/www.knowhowtransfer.com\/store\/wp-content\/uploads\/2014\/05\/notes_on_sharpening_02-03.jpg\" alt=\"notes_on_sharpening_02-03\" width=\"870\" height=\"203\" \/><p id=\"caption-attachment-6049\" class=\"wp-caption-text\">(Fig. 2.3) L\u2019immagine originale pi\u00f9 il risultato della differenza in Fig. 2.2 danno la maschera di contrasto<\/p><\/div>\n<p>In Photoshop l\u2019effetto si ottiene con Spostamento e Scala (offset e scaling), e il risultato della differenza \u00e8 forse pi\u00f9 familiare:<\/p>\n<div id=\"attachment_6050\" style=\"width: 880px\" class=\"wp-caption alignnone\"><img decoding=\"async\" aria-describedby=\"caption-attachment-6050\" class=\"wp-image-6050 size-full\" src=\"https:\/\/www.knowhowtransfer.com\/store\/wp-content\/uploads\/2014\/05\/notes_on_sharpening_02-04.jpg\" alt=\"notes_on_sharpening_02-04\" width=\"870\" height=\"203\" \/><p id=\"caption-attachment-6050\" class=\"wp-caption-text\">(Fig 2.4) Usando una versione scalata della differenza in Photoshop.<\/p><\/div>\n<p>&nbsp;<\/p>\n<div id=\"attachment_6051\" style=\"width: 873px\" class=\"wp-caption alignnone\"><img decoding=\"async\" aria-describedby=\"caption-attachment-6051\" class=\"wp-image-6051 size-full\" src=\"https:\/\/www.knowhowtransfer.com\/store\/wp-content\/uploads\/2014\/05\/notes_on_sharpening_02-05.jpg\" alt=\"notes_on_sharpening_02-05\" width=\"863\" height=\"385\" \/><p id=\"caption-attachment-6051\" class=\"wp-caption-text\">(Fig 2.5) Dettagli della versione con maschera di contrasto usando la Sfocatura Gaussiana con raggio 4.0.<\/p><\/div>\n<p>Un modo un po\u2019 pi\u00f9 astratto di descrivere lo Sharpening Gaussiano, che trovo utile per visualizzare l\u2019effetto e comparare diverse strategie \u00e8 disegnare l\u2019intensit\u00e0 del segnale (in nero), la sua versione sfocata (in rosso), la differenza (in verde) e l\u2019originale pi\u00f9 la differenza (in nero grassetto):<\/p>\n<div id=\"attachment_6052\" style=\"width: 880px\" class=\"wp-caption alignnone\"><img decoding=\"async\" aria-describedby=\"caption-attachment-6052\" class=\"wp-image-6052 size-full\" src=\"https:\/\/www.knowhowtransfer.com\/store\/wp-content\/uploads\/2014\/05\/notes_on_sharpening_02-06.jpg\" alt=\"notes_on_sharpening_02-06\" width=\"870\" height=\"326\" \/><p id=\"caption-attachment-6052\" class=\"wp-caption-text\">(Fig 2.6) Grafico dello Sharpening Gaussiano<\/p><\/div>\n<p>&nbsp;<\/p>\n<p>Il concetto chiave dello Sharpening Gaussiano \u00e8 che la differenza tra ci\u00f2 che \u00e8 sfocato e l\u2019originale \u00e8 esattamente quello che sar\u00e0 poi evidenziato, pi\u00f9 pronunciato. Se si user\u00e0 un kernel di sfocatura (per esempio Gaussiana, GB che sta per Gaussian Blur) che sfoca sia bordi che texture, allora proprio bordi e texture saranno pi\u00f9 evidenti quando la differenza sar\u00e0 aggiunta all\u2019originale. A seconda dell\u2019algoritmo usato e da come sia eventualmente processata l\u2019immagine sfocata, si pu\u00f2 arrivare ad uno sharpening che agisca separatamente sui vari elementi dell\u2019immagine.<\/p>\n<p>Prima di continuare, rivediamo come usare il comando Calcoli di Photoshop e come usarlo per applicare la maschera di contrasto. Apriamo un\u2019immagine, convertiamola in Scala di Grigio (quella che preferiamo), e poi:<\/p>\n<p>duplichiamo il canale del Grigio due volte;<br \/> chiamiamo il primo ORIG e il secondo BLUR;<br \/> applichiamo il filtro Sfocatura Gaussiana a BLUR;<br \/> nel men\u00f9 Immagine, Calcoli per applicare la sottrazione:<br \/> <strong>ORIG &#8211; BLUR<\/strong>; (Eq. 2.1)<br \/> Occorre impostare la finestra Calcoli come segue:<\/p>\n<p>&nbsp;<\/p>\n<div id=\"attachment_6053\" style=\"width: 497px\" class=\"wp-caption aligncenter\"><img decoding=\"async\" aria-describedby=\"caption-attachment-6053\" class=\"wp-image-6053 size-full\" src=\"https:\/\/www.knowhowtransfer.com\/store\/wp-content\/uploads\/2014\/05\/notes_on_sharpening_02-07.jpg\" alt=\"notes_on_sharpening_02-07\" width=\"487\" height=\"354\" \/><p id=\"caption-attachment-6053\" class=\"wp-caption-text\">(Fig 2.7) Finestra di Immagine &#8211; Calcoli<\/p><\/div>\n<p>Attenzione, il primo termine della sottrazione \u00e8 la sorgente #2, il secondo la sorgente #1. Il risultato non \u00e8 riproporzionato, e per applicarlo con la giusta modalit\u00e0 di fusione (Luce Lineare, LL) ci sono due diverse possibilit\u00e0. Chiamiamo SS1 la Sottrazione con Scala = 1, che implica una successiva applicazione del livello sull\u2019originale con fusione LL e opacit\u00e0 al 50%, e SS2 la Sottrazione con Scala = 2, che implica una successiva applicazione del livello sull\u2019originale con fusione LL e opacit\u00e0 al 100%. Entrambi i casi possono essere utili, come vedremo.<\/p>\n<div id=\"attachment_6054\" style=\"width: 497px\" class=\"wp-caption aligncenter\"><img decoding=\"async\" aria-describedby=\"caption-attachment-6054\" class=\"wp-image-6054 size-full\" src=\"https:\/\/www.knowhowtransfer.com\/store\/wp-content\/uploads\/2014\/05\/notes_on_sharpening_02-08.jpg\" alt=\"notes_on_sharpening_02-08\" width=\"487\" height=\"210\" \/><p id=\"caption-attachment-6054\" class=\"wp-caption-text\">(Fig 2.8) Riproporzionare o meno la sottrazione (il risultato della sottrazione \u00e8 diviso per la Scala e addizionato a Sposta<\/p><\/div>\n<p>Ad un esame pi\u00f9 attento, ho verificato che SS1 (con LL 50%) ed SS2 (con LL 100%) non sono esattamente equivalenti! Il problema \u00e8 visibile, in pratica, solo quando li useremo per le scomposizioni piramidali &#8211; ed SS2, seguita da LL 50% \u00e8 la strada corretta, mentre SS1 pu\u00f2 produrre neri sbiaditi.<\/p>\n<h3>3. Differenza di Gaussiane<\/h3>\n<p>Spostiamo leggermente il punto di vista: cosa accadrebbe se, invece di sottrarre una versione sfocata all\u2019originale, la sottrazione fosse tra due versioni diversamente sfocate? Disegnamo il grafico, prima di investigare sul perch\u00e9 di una simile strategia:<\/p>\n<p>&nbsp;<\/p>\n<div id=\"attachment_6056\" style=\"width: 880px\" class=\"wp-caption alignnone\"><img decoding=\"async\" aria-describedby=\"caption-attachment-6056\" class=\"wp-image-6056 size-full\" src=\"https:\/\/www.knowhowtransfer.com\/store\/wp-content\/uploads\/2014\/05\/notes_on_sharpening_03-01.jpg\" alt=\"notes_on_sharpening_03-01\" width=\"870\" height=\"417\" \/><p id=\"caption-attachment-6056\" class=\"wp-caption-text\">(Fig 3.1) Transizione di Intensit\u00e0 e Differenza di Gaussiane.<\/p><\/div>\n<p class=\"size-full wp-image-580\">Il concetto che sta dietro alla Differenza di Gaussiane (DoG, Difference of Gaussians) \u00e8 piuttosto semplice: il rumore appartiene solitamente alle alte frequenze, ed \u00e8 spazzato via in entrambe le versioni sfocate, dunque non verr\u00e0 evidenziato; d\u2019altra parte, le due versioni contengono dettaglio in diverse gamme di frequenza. Dunque la sottrazione \u00e8 un modo di evidenziare proprio quella finestra di frequenze:<\/p>\n<div id=\"attachment_6055\" style=\"width: 880px\" class=\"wp-caption alignnone\"><img decoding=\"async\" aria-describedby=\"caption-attachment-6055\" class=\"wp-image-6055 size-full\" src=\"https:\/\/www.knowhowtransfer.com\/store\/wp-content\/uploads\/2014\/05\/notes_on_sharpening_03_02.jpg\" alt=\"notes_on_sharpening_03_02\" width=\"870\" height=\"203\" \/><p id=\"caption-attachment-6055\" class=\"wp-caption-text\">(Fig 3.2) La sottrazione tra due versioni dell\u2019originale sfocate (GB) con diversi raggi<\/p><\/div>\n<p>&nbsp;<\/p>\n<div id=\"attachment_6057\" style=\"width: 880px\" class=\"wp-caption alignnone\"><img decoding=\"async\" aria-describedby=\"caption-attachment-6057\" class=\"wp-image-6057 size-full\" src=\"https:\/\/www.knowhowtransfer.com\/store\/wp-content\/uploads\/2014\/05\/notes_on_sharpening_03-03.jpg\" alt=\"notes_on_sharpening_03-03\" width=\"870\" height=\"203\" \/><p id=\"caption-attachment-6057\" class=\"wp-caption-text\">(Fig 3.3) L\u2019originale pi\u00f9 il risultato della differenza da la versione contrastata; il dettaglio nelle alte frequenze non \u00e8 toccato dalla DoG (per ammorbidire l\u2019effetto \u00e8 possibile abbassare l\u2019opacit\u00e0 del LL o una curva per ridurre il contrasto del livello di differenza)<\/p><\/div>\n<p>&nbsp;<\/p>\n<div id=\"attachment_6058\" style=\"width: 873px\" class=\"wp-caption alignnone\"><a href=\"https:\/\/www.knowhowtransfer.com\/store\/notes-on-sharpening\/notes_on_sharpening_03-04\/\" rel=\"attachment wp-att-6058\"><img decoding=\"async\" aria-describedby=\"caption-attachment-6058\" class=\"wp-image-6058 size-full\" src=\"https:\/\/www.knowhowtransfer.com\/store\/wp-content\/uploads\/2014\/05\/notes_on_sharpening_03-04.jpg\" alt=\"notes_on_sharpening_03-04\" width=\"863\" height=\"385\" \/><\/a><p id=\"caption-attachment-6058\" class=\"wp-caption-text\">(Fig 3.4) DoG con R1=4.0 e R2=20.0 e SS2, applicando LL con un ulteriore abbassamento a 50% dell\u2019opacit\u00e0<\/p><\/div>\n<p>Riporto qui la DoG perch\u00e9 rappresenta un primo passo fuori dai binari dello sharpening tradizionale; nei campi in cui \u00e8 abitualmente utilizzata si consiglia un rapporto dei raggi di sfocatura da 4:1 a 5:1, mentre un rapporto di 1.6 simula la Laplaciana delle Gaussiane (LoG: un operatore che calcola la derivata seconda dell\u2019intensit\u00e0 del segnale, e dunque \u00e8 utile per trovare bordi. Spero di riuscire presto ad aggiungere altro materiale sul LoG).<\/p>\n<p>Devo ancora testare la DoG approfonditamente: nonostante ci\u00f2, un\u2019importante caratteristica che voglio notare \u00e8 la somiglianza con la maschera di contrasto inversa (con alto raggio e bassa quantit\u00e0). C\u2019\u00e8 una grossa differenza, per\u00f2: la DoG incide poco o niente sui bordi, perch\u00e9 appartengono al range delle alte frequenze che come abbiamo visto non viene spinto (poca differenza nei bordi tra GB1 e GB2 significa poco incremento di contrasto). Questo pu\u00f2 essere un beneficio in flussi di lavoro dove sono pianificati diversi cicli di sharpening e vale la pena consumare il tempo per un passaggio extra.<\/p>\n<h3>4. Altri kernel di sfocatura<\/h3>\n<p>Chiarito che sfocatura e differenza sono alla base del processo di sharpening, ho cominciato a chiedermi cosa sarebbe successo se al posto di GB (o assieme ad esso) fossero usati kernel diversi.<\/p>\n<p>Prendiamo ad esempio Sfocatura di Superficie (Surface Blur, SB), meglio noto al di fuori di Photoshop come Filtro Bilaterale: un algoritmo di sfocatura che preserva i bordi. Se preserva i bordi e sfoca tutto il resto, dovremmo immediatamente pensare: SB uguale qualcosa per evidenziare tutto tranne i bordi. Vediamo:<\/p>\n<div id=\"attachment_6059\" style=\"width: 880px\" class=\"wp-caption alignnone\"><a href=\"https:\/\/www.knowhowtransfer.com\/store\/notes-on-sharpening\/notes_on_sharpening_04-01\/\" rel=\"attachment wp-att-6059\"><img decoding=\"async\" aria-describedby=\"caption-attachment-6059\" class=\"wp-image-6059 size-full\" src=\"https:\/\/www.knowhowtransfer.com\/store\/wp-content\/uploads\/2014\/05\/notes_on_sharpening_04-01.jpg\" alt=\"notes_on_sharpening_04-01\" width=\"870\" height=\"203\" \/><\/a><p id=\"caption-attachment-6059\" class=\"wp-caption-text\">(Fig 4.1) Sottrazione usando il filtro preserva bordi SB in luogo di GB<\/p><\/div>\n<p>&nbsp;<\/p>\n<div id=\"attachment_6060\" style=\"width: 880px\" class=\"wp-caption alignnone\"><img decoding=\"async\" aria-describedby=\"caption-attachment-6060\" class=\"wp-image-6060 size-full\" src=\"https:\/\/www.knowhowtransfer.com\/store\/wp-content\/uploads\/2014\/05\/notes_on_sharpening_04-02.jpg\" alt=\"notes_on_sharpening_04-02\" width=\"870\" height=\"203\" \/><p id=\"caption-attachment-6060\" class=\"wp-caption-text\">(Fig 4.2) Agendo meno sui bordi, le texture sono pi\u00f9 evidenziate<\/p><\/div>\n<p>&nbsp;<\/p>\n<div id=\"attachment_6061\" style=\"width: 873px\" class=\"wp-caption alignnone\"><img decoding=\"async\" aria-describedby=\"caption-attachment-6061\" class=\"wp-image-6061 size-full\" src=\"https:\/\/www.knowhowtransfer.com\/store\/wp-content\/uploads\/2014\/05\/notes_on_sharpening_04-03.jpg\" alt=\"notes_on_sharpening_04-03\" width=\"863\" height=\"385\" \/><p id=\"caption-attachment-6061\" class=\"wp-caption-text\">(Fig 4.3) Il risultato con SB Raggio = 6 e Soglia = 15<\/p><\/div>\n<p>Il risultato \u00e8 quello che immaginavamo. A parte il fatto che SB non \u00e8 il filtro pi\u00f9 veloce nell\u2019arsenale di Photoshop, ci sono un paio fatti piuttosto seccanti. E\u2019 richiesta un po\u2019 di pratica per trovare il giusto mix di Raggio\/Soglia; ma soprattutto, a causa dell\u2019algoritmo stesso, a raggi molto ampi l\u2019effetto si inverte, e invece di sfocare di pi\u00f9 torna ad comparire il dettaglio:<\/p>\n<div id=\"attachment_6062\" style=\"width: 880px\" class=\"wp-caption alignnone\"><a href=\"https:\/\/www.knowhowtransfer.com\/store\/notes-on-sharpening\/notes_on_sharpening_04-04\/\" rel=\"attachment wp-att-6062\"><img decoding=\"async\" aria-describedby=\"caption-attachment-6062\" class=\"wp-image-6062 size-full\" src=\"https:\/\/www.knowhowtransfer.com\/store\/wp-content\/uploads\/2014\/05\/notes_on_sharpening_04-04.jpg\" alt=\"notes_on_sharpening_04-04\" width=\"870\" height=\"203\" \/><\/a><p id=\"caption-attachment-6062\" class=\"wp-caption-text\">(Fig 4.4) SB Con Soglia 15 e Raggio 6.0 &#8211; 50.0 &#8211; 100.0; SB a raggi molto alti inverte il suo effetto e ricompare il dettaglio<\/p><\/div>\n<p>Un filtro di sfocatura che preserva i bordi decisamente migliore \u00e8 l\u2019operatore WLS (Weighted Least Squares: minimi quadrati pesati). A meno di essere programmatori un po\u2019 abili o di riuscire a mettere le mani su un computer su cui siano installati contemporaneamente MatLab e Photoshop, usarlo \u00e8 un po\u2019 un problema. I risultati sono comunque rilevanti &#8211; si veda il link nella sezione dei collegamenti.<\/p>\n<h3>5. Uso combinato di diversi kernel di sfocatura<\/h3>\n<p>A questo punto vorrei introdurre l\u2019uso contemporaneo dei filtri GB e SB (cio\u00e8 due kernel che differiscono per come trattano i bordi) per modulare lo sharpening. Scriviamo un paio di righe di algebra poco ortodossa. Essendo O l\u2019immagine originale, T la texture ed E i bordi (Edges), gli ultimi due entrambi appartenenti alle alte frequenze, abbiamo visto che:<\/p>\n<p>GB = O &#8211; (T+E); (Eq. 5.1)<\/p>\n<p>SB = O &#8211; T; (Eq. 5.2)<\/p>\n<p>La sottrazione da la componente E dei bordi:<\/p>\n<p>(SB &#8211; GB) = O &#8211; T &#8211; O + T + E = E; (Eq. 5.3)<\/p>\n<p>Mentre, riarrangiando la seconda equazione, proviamo che le texture sono evidenziate da SB:<\/p>\n<p>(O &#8211; SB) = T; (Eq. 5.4)<\/p>\n<p>Ora abbiamo tutti gli elementi per modulare lo sharpening, separando l\u2019effetto nei bordi e nelle texture. Vediamo: le seguenti immagini sono le versioni GB, SB e la sottrazione scalata di cui abbiamo parlato.<\/p>\n<p>&nbsp;<\/p>\n<div id=\"attachment_6063\" style=\"width: 880px\" class=\"wp-caption alignnone\"><img decoding=\"async\" aria-describedby=\"caption-attachment-6063\" class=\"wp-image-6063 size-full\" src=\"https:\/\/www.knowhowtransfer.com\/store\/wp-content\/uploads\/2014\/05\/notes_on_sharpening_05-01.jpg\" alt=\"notes_on_sharpening_05-01\" width=\"870\" height=\"203\" \/><p id=\"caption-attachment-6063\" class=\"wp-caption-text\">(Fig 5.1) Sottrazione tra SB (Raggio=6 Soglia=15) and GB (Raggio=4) per ottenere un canale che evidenzier\u00e0 solamente i bordi<\/p><\/div>\n<p>&nbsp;<\/p>\n<div id=\"attachment_6064\" style=\"width: 880px\" class=\"wp-caption alignnone\"><a href=\"https:\/\/www.knowhowtransfer.com\/store\/notes-on-sharpening\/notes_on_sharpening_05-02\/\" rel=\"attachment wp-att-6064\"><img decoding=\"async\" aria-describedby=\"caption-attachment-6064\" class=\"wp-image-6064 size-full\" src=\"https:\/\/www.knowhowtransfer.com\/store\/wp-content\/uploads\/2014\/05\/notes_on_sharpening_05-02.jpg\" alt=\"notes_on_sharpening_05-02\" width=\"870\" height=\"203\" \/><\/a><p id=\"caption-attachment-6064\" class=\"wp-caption-text\">(Fig 5.2) L\u2019applicazione dello sharpening solo sui bordi LL opacit\u00e0 50%<\/p><\/div>\n<p>&nbsp;<\/p>\n<div id=\"attachment_6065\" style=\"width: 873px\" class=\"wp-caption alignnone\"><img decoding=\"async\" aria-describedby=\"caption-attachment-6065\" class=\"wp-image-6065 size-full\" src=\"https:\/\/www.knowhowtransfer.com\/store\/wp-content\/uploads\/2014\/05\/notes_on_sharpening_05-03.jpg\" alt=\"notes_on_sharpening_05-03\" width=\"863\" height=\"385\" \/><p id=\"caption-attachment-6065\" class=\"wp-caption-text\">(Fig. 5.3) Il risultato usando SB (Raggio = 6 e Soglia = 15) e GB (Raggio = 4)<\/p><\/div>\n<p>Ci\u00f2 che dovrebbe risultare \u00e8 uno sharpening solo sui bordi. A questo punto abbiamo in mano un nuovo efficace strumento: siamo in grado di avere uno sharpening su bordi e texture contemporaneamente (con GB), solo sulle texture (con SB) o solo sui bordi (con SB &#8211; GB). Un effetto pi\u00f9 pronunciato pu\u00f2 essere ottenuto con una maggiore opacit\u00e0 dei livelli LL (quando possibile) o con un livello di aggiustamento a curva sigmoide (cio\u00e8 a forma di S) clippato, la cui opacit\u00e0 pu\u00f2 essere variata per un controllo ancora pi\u00f9 fine. Il tutto pu\u00f2 facilmente essere automatizzato per rendere pi\u00f9 rapide le operazioni.<\/p>\n<h3>6. Scomposizione delle immagini<\/h3>\n<p>Fino ad ora abbiamo cercato di differenziare lo sharpening su elementi che appartengono allo stesso range di frequenze (alte: texture, bordi). Un\u2019immagine per\u00f2 di solito contiene contemporaneamente frequenze diverse: le alte corrispondono a dettagli pi\u00f9 fini (capelli, ad esempio), le basse a transizioni tonali pi\u00f9 morbide (il chiaroscuro sulle guance in un ritratto). E\u2019 possibile modulare diversamente su ogni frequenza uno sharpening appropriato, e per facilitarci il compito ricorreremo alla scomposizione piramidale: che altro non \u00e8 che un modo di scomporre un\u2019immagine in range di frequenze (alte, medie, basse, ad esempio)<\/p>\n<p>Per fortuna la matematica che sta a monte della scomposizione \u00e8 piuttosto semplice: user\u00f2 il filtro GB (dunque costruiremo una piramide gaussiana, in questo caso di tre livelli, ma si possono estendere a piacere); essendo O l\u2019immagine originale, GBn(O) il filtro GB applicato ad O con raggio crescente con n:<\/p>\n<p>U0 = O; (Eq. 6.1)<\/p>\n<p>U1 = GB1(O); (Eq. 6.2)<\/p>\n<p>U2 = GB2(O); (Eq. 6.3)<\/p>\n<p>U3 = GB3(O); (Eq. 6.4)<\/p>\n<p>Definiamo le differenze Dn come segue:<\/p>\n<p>D1 = U0 &#8211; U1; (Eq. 6.5)<\/p>\n<p>D2 = U1 &#8211; U2; (Eq. 6.6)<\/p>\n<p>D3 = U2 &#8211; U3; (Eq. 6.7)<\/p>\n<p>Cos\u00ec l\u2019immagine pu\u00f2 essere scomposta in:<\/p>\n<p>O = U3 + D1 + D2 + D3; (Eq. 6.8)<\/p>\n<p>Infatti, sostituendo le differenze otteniamo:<\/p>\n<p>O = U3 + U0 &#8211; U1 + U1 &#8211; U2 + U2 &#8211; U3 = U0 = O; (Eq. 6.9)<\/p>\n<p>Rientriamo in Photoshop per costruire questa piramide. Abbiamo bisogno di usare il filtro GB e di fare sottrazioni, qualcosa che ormai dovrebbe esserci familiare.<br \/> I tre raggi di GB definiscono i range delle frequenze. Ho scelto raggi piuttosto piccoli (1px, 5px, 15px) perch\u00e8 l\u2019immagine di esempio che sto usando \u00e8 piccola. A seconda della risoluzione della vostra, i raggi possono variare. Il suggerimento \u00e8 quello di usare il raggio minore corrispondente a quello che usereste applicando convenzionalmente USM (la maschera di contrasto), il raggio maggiore corrispondente a quello di HiRaLoAm e quello intermedio&#8230; ad un valore intermedio. Ecco i tre U1, U2, U3 e le differenze D1, D2, D3 cos\u00ec come le abbiamo definite (sto usando SS2):<\/p>\n<div id=\"attachment_6066\" style=\"width: 880px\" class=\"wp-caption alignnone\"><img decoding=\"async\" aria-describedby=\"caption-attachment-6066\" class=\"wp-image-6066 size-full\" src=\"https:\/\/www.knowhowtransfer.com\/store\/wp-content\/uploads\/2014\/05\/notes_on_sharpening_06-01.jpg\" alt=\"notes_on_sharpening_06-01\" width=\"870\" height=\"203\" \/><p id=\"caption-attachment-6066\" class=\"wp-caption-text\">(Fig. 6.1) U1, U2 e U3, cio\u00e8 GBn(O)<\/p><\/div>\n<p>&nbsp;<\/p>\n<div id=\"attachment_6067\" style=\"width: 880px\" class=\"wp-caption alignnone\"><a href=\"https:\/\/www.knowhowtransfer.com\/store\/notes-on-sharpening\/notes_on_sharpening_06-02\/\" rel=\"attachment wp-att-6067\"><img decoding=\"async\" aria-describedby=\"caption-attachment-6067\" class=\"wp-image-6067 size-full\" src=\"https:\/\/www.knowhowtransfer.com\/store\/wp-content\/uploads\/2014\/05\/notes_on_sharpening_06-02.jpg\" alt=\"notes_on_sharpening_06-02\" width=\"870\" height=\"203\" \/><\/a><p id=\"caption-attachment-6067\" class=\"wp-caption-text\">(Fig 6.2) D1 = U0 &#8211; U1<\/p><\/div>\n<p>&nbsp;<\/p>\n<div id=\"attachment_6068\" style=\"width: 880px\" class=\"wp-caption alignnone\"><img decoding=\"async\" aria-describedby=\"caption-attachment-6068\" class=\"wp-image-6068 size-full\" src=\"https:\/\/www.knowhowtransfer.com\/store\/wp-content\/uploads\/2014\/05\/notes_on_sharpening_06-03.jpg\" alt=\"notes_on_sharpening_06-03\" width=\"870\" height=\"203\" \/><p id=\"caption-attachment-6068\" class=\"wp-caption-text\">(Fig 6.3) D2 = U1 &#8211; U2<\/p><\/div>\n<p>&nbsp;<\/p>\n<div id=\"attachment_6069\" style=\"width: 880px\" class=\"wp-caption alignnone\"><a href=\"https:\/\/www.knowhowtransfer.com\/store\/notes-on-sharpening\/notes_on_sharpening_06-04\/\" rel=\"attachment wp-att-6069\"><img decoding=\"async\" aria-describedby=\"caption-attachment-6069\" class=\"wp-image-6069 size-full\" src=\"https:\/\/www.knowhowtransfer.com\/store\/wp-content\/uploads\/2014\/05\/notes_on_sharpening_06-04.jpg\" alt=\"notes_on_sharpening_06-04\" width=\"870\" height=\"203\" \/><\/a><p id=\"caption-attachment-6069\" class=\"wp-caption-text\">Fig 6.4) D3 = U2 &#8211; U3<\/p><\/div>\n<p>Ora che tutti gli elementi sono stati creati, \u00e8 ora di comporre la piramide nella palette dei livelli di Photoshop. In un nuovo Set, dal basso verso l\u2019alto: la versione maggiormente sfocata (con raggio pi\u00f9 alto U<sub>3<\/sub>, poi D<sub>1<\/sub>, D<sub>2<\/sub>, D<sub>3<\/sub>, tutte e tre LL 100% opacit\u00e0 (questo perch\u00e8 sto usando SS2). Ecco come dovrebbero essere le palette dei Livelli e dei Canali:<\/p>\n<div id=\"attachment_6078\" style=\"width: 525px\" class=\"wp-caption alignnone\"><img decoding=\"async\" aria-describedby=\"caption-attachment-6078\" class=\"wp-image-6078 size-full\" src=\"https:\/\/www.knowhowtransfer.com\/store\/wp-content\/uploads\/2014\/05\/06-05.png\" alt=\"06-05\" width=\"515\" height=\"581\" \/><p id=\"caption-attachment-6078\" class=\"wp-caption-text\">(Fig 6.5) Palette dei Canali e dei Livelli dopo la ricomposizione della piramide<\/p><\/div>\n<p>Nonostante l\u2019affollamento (un\u2019azione pu\u00f2 automatizzare facilmente il tutto) il processo non \u00e8 complesso, ed \u00e8 poi possibile eliminare i canali che non servono pi\u00f9. Accendendo e spegnendo il set non si dovrebbe notare alcuna differenza, il che significa che tutto \u00e8 andato secondo i piani. Ottimo! E adesso?<\/p>\n<h3>7. Un Equalizzatore di sharpening<\/h3>\n<p>La nostra immagine scomposta ci offre la possibilit\u00e0 di costruire un equalizzatore a 3 slider (o pi\u00f9, a seconda dei livelli in cui abbiamo scomposto l\u2019immagine) molto velocemente. Su ogni livello Dn aggiungiamo un livello di aggiustamento &#8211; curve clippato, con una curva a forma di S, e poi moduliamo le opacit\u00e0 di queste curve:<\/p>\n<div id=\"attachment_6079\" style=\"width: 580px\" class=\"wp-caption alignnone\"><img decoding=\"async\" aria-describedby=\"caption-attachment-6079\" class=\"wp-image-6079 size-full\" src=\"https:\/\/www.knowhowtransfer.com\/store\/wp-content\/uploads\/2014\/05\/07-01corr.png\" alt=\"07-01corr\" width=\"570\" height=\"670\" \/><p id=\"caption-attachment-6079\" class=\"wp-caption-text\">(Fig 7.1) La curva a forma di S comune a tutti i livelli di aggiustamento clippati alle Dn. L\u2019opacit\u00e0 di queste curve controlla lo sharpening nelle frequenze Alte, Medie e Basse, cos\u00ec come sono state definite dai raggi dei GB (0.5, 2.0, 4.0 per queste piccole immagini dimostrative). Accanto, la palette dei livelli nella sua configurazione finale<\/p><\/div>\n<p>Il tutto potrebbe ricordare il plugin KPT Equalizer (be\u2019, senza la sua peculiarissima interfaccia:) \u00e8 possibile usare valori negativi &#8211; cio\u00e8 non evidenziare (sharpening) ma ridurre (sfocatura) un range di frequenze &#8211; abbassando l\u2019opacit\u00e0 sotto al 50% avendo usato SS1, o abbassando l\u2019opacit\u00e0 dei livelli Dn avendo usato SS2. Di seguito una versione:<\/p>\n<div id=\"attachment_6070\" style=\"width: 873px\" class=\"wp-caption alignnone\"><img decoding=\"async\" aria-describedby=\"caption-attachment-6070\" class=\"wp-image-6070 size-full\" src=\"https:\/\/www.knowhowtransfer.com\/store\/wp-content\/uploads\/2014\/05\/notes_on_sharpening_07-02.jpg\" alt=\"notes_on_sharpening_07-02\" width=\"863\" height=\"385\" \/><p id=\"caption-attachment-6070\" class=\"wp-caption-text\">(Fig 7.2) Una delle tante possibilit\u00e0 ottenute giocando con gli sliders dello sharpening sulle tre frequenze<\/p><\/div>\n<h3>8. Piramide Bilaterale e Piramide WLS<\/h3>\n<p>E\u2019 possibile usare diversi kernel di sfocatura, e le equazioni della scomposizione piramidale sono ancora valide. Vediamo, ad esempio, con SB:<\/p>\n<div id=\"attachment_6071\" style=\"width: 880px\" class=\"wp-caption alignnone\"><img decoding=\"async\" aria-describedby=\"caption-attachment-6071\" class=\"wp-image-6071 size-full\" src=\"https:\/\/www.knowhowtransfer.com\/store\/wp-content\/uploads\/2014\/05\/notes_on_sharpening_08-01.jpg\" alt=\"notes_on_sharpening_08-01\" width=\"870\" height=\"203\" \/><p id=\"caption-attachment-6071\" class=\"wp-caption-text\">(Fig 8.1) SB1(O) (Raggio=2; Soglia=6), SB2(O) (R=3, T=10), SB3(O) (R=7, T=15)<\/p><\/div>\n<p>&nbsp;<\/p>\n<div id=\"attachment_6072\" style=\"width: 880px\" class=\"wp-caption alignnone\"><img decoding=\"async\" aria-describedby=\"caption-attachment-6072\" class=\"wp-image-6072 size-full\" src=\"https:\/\/www.knowhowtransfer.com\/store\/wp-content\/uploads\/2014\/05\/notes_on_sharpening_08-02.jpg\" alt=\"notes_on_sharpening_08-02\" width=\"870\" height=\"203\" \/><p id=\"caption-attachment-6072\" class=\"wp-caption-text\">((Fig 8.2) Livelli di differenza D1, D2, D3 (sto usando SS1 perch\u00e8 siano pi\u00f9 evidenti)<\/p><\/div>\n<p>&nbsp;<\/p>\n<div id=\"attachment_6073\" style=\"width: 873px\" class=\"wp-caption alignnone\"><img decoding=\"async\" aria-describedby=\"caption-attachment-6073\" class=\"wp-image-6073 size-full\" src=\"https:\/\/www.knowhowtransfer.com\/store\/wp-content\/uploads\/2014\/05\/notes_on_sharpening_08-03.jpg\" alt=\"notes_on_sharpening_08-03\" width=\"863\" height=\"385\" \/><p id=\"caption-attachment-6073\" class=\"wp-caption-text\">(Fig 8.3) Il risultato dello sharpening con scomposizione piramidale bilaterale<\/p><\/div>\n<p>Riuscite ad individuare la differenza tra l\u2019equalizzazione con una piramide bilaterale (cio\u00e8 che usa SB) e quella Gaussiana? Forse non molto qui, ma provando con le vostre immagini (ad alta risoluzione, magari a 16bit ma non \u00e8 necessario) scoprirete che essendo SB un filtro preserva-bordi, la piramide bilaterale mostra pochi o addirittura nessun alone, il che \u00e8 un bel vantaggio a mio parere. Ricostruendo \u201ca mano\u201d il comando di Photoshop Luci\/Ombre con SB al posto di GB nel suo motore si ottengono i medesimi vantaggi, tra parentesi.<\/p>\n<p>Come abbiamo gi\u00e0 visto, il filtro WLS \u00e8 migliore del bilaterale, dunque pu\u00f2 essere usato con risultati ancora pi\u00f9 sorprendenti (si veda nel sito dei creatori di WLS un video veramente notevole. Adobe, nessuno in ascolto ? \ud83d\ude42<\/p>\n<h3>9. Scomposizioni piramidali miste<\/h3>\n<p>Che lo si trovi bizzarro o meno, ci \u00e8 concesso di mischiare contemporaneamente diversi kernel di sfocatura e le equazioni funzionano ancora. Ricordando quello che abbiamo visto nel paragrafo 5 (uso combinato di diversi kernel di sfocatura), ho scritto che:<\/p>\n<p>(SB &#8211; GB) = E; (Eq. 9.1)<\/p>\n<p>Se modifichiamo gli assunti della scomposizione piramidale in questo modo:<\/p>\n<p>U0 = O; (Eq. 9.2)<\/p>\n<p>U1 = SB1(O); (Eq. 9.3)<\/p>\n<p>U2 = GB1(O); (Eq. 9.4)<\/p>\n<p>otteniamo una scomposizione in 2 livelli con:<\/p>\n<p>D1 = U0 &#8211; U1 =O &#8211; SB1(O) = T; (Eq. 9.5)<\/p>\n<p>con quello che sappiamo dalla eq. 5.4. abbiamo dunque:<\/p>\n<p>D2 = U1 &#8211; U2 =SB1(O) &#8211; GB1(O) = E; (Eq. 9.6)<\/p>\n<p>che deriva dalla eq. 5.3. Dunque D1 \u00e8 un livello di differenza di una scomposizione mista che contiene, e dunque pu\u00f2 evidenziare, le frequenze relative alle sole texture; e D2 \u00e8 un livello di differenza di una scomposizione mista che contiene, e dunque pu\u00f2 evidenziare, le frequenze relative ai soli bordi.<br \/> Ecco i livelli di differenza:<\/p>\n<div id=\"attachment_6074\" style=\"width: 880px\" class=\"wp-caption alignnone\"><img decoding=\"async\" aria-describedby=\"caption-attachment-6074\" class=\"wp-image-6074 size-full\" src=\"https:\/\/www.knowhowtransfer.com\/store\/wp-content\/uploads\/2014\/05\/notes_on_sharpening_09-01.jpg\" alt=\"notes_on_sharpening_09-01\" width=\"870\" height=\"203\" \/><p id=\"caption-attachment-6074\" class=\"wp-caption-text\">Fig 9.1) O &#8211; SB1(O) = D1, il livello che contiene solo il dettaglio relativo alle texture (SB Raggio=3, Soglia=16)<\/p><\/div>\n<p>&nbsp;<\/p>\n<div id=\"attachment_6075\" style=\"width: 880px\" class=\"wp-caption alignnone\"><img decoding=\"async\" aria-describedby=\"caption-attachment-6075\" class=\"wp-image-6075 size-full\" src=\"https:\/\/www.knowhowtransfer.com\/store\/wp-content\/uploads\/2014\/05\/notes_on_sharpening_09-02.jpg\" alt=\"notes_on_sharpening_09-02\" width=\"870\" height=\"203\" \/><p id=\"caption-attachment-6075\" class=\"wp-caption-text\">(Fig 9.2) SB1(O) &#8211; GB1(O) = D2, il livello di dettaglio dei bordi (GB Raggio=2)<\/p><\/div>\n<p>Di seguito le palette dei Canali e dei Livelli:<\/p>\n<div id=\"attachment_6080\" style=\"width: 533px\" class=\"wp-caption alignnone\"><img decoding=\"async\" aria-describedby=\"caption-attachment-6080\" class=\"wp-image-6080 size-full\" src=\"https:\/\/www.knowhowtransfer.com\/store\/wp-content\/uploads\/2014\/05\/09-03.png\" alt=\"09-03\" width=\"523\" height=\"449\" \/><p id=\"caption-attachment-6080\" class=\"wp-caption-text\">(Fig 9.3) Channels and Layers palettes of a Mixed Pyramid.<\/p><\/div>\n<p>Ora possiamo aggiungere i soliti livelli di aggiustamento &#8211; curve clippati ai D<sub>n<\/sub> e giocare con gli sliders. Ecco una versione di esempio:<\/p>\n<p><img decoding=\"async\" class=\"alignnone size-full wp-image-6076\" src=\"https:\/\/www.knowhowtransfer.com\/store\/wp-content\/uploads\/2014\/05\/notes_on_sharpening_09-04.jpg\" alt=\"notes_on_sharpening_09-04\" width=\"863\" height=\"385\" \/><\/p>\n<h3>10. Conclusioni (temporanee)<\/h3>\n<p>Ho cercato di riunire qui materiale proveniente da diverse fonti e le mie personali scoperte attorno al tema (del resto molto soggettivo) dello sharpening. Ero molto interessato nel dimostrare l\u2019uso combinato di diversi kernel di sfocatura, e il perch\u00e8 la scomposizione piramidale sia una piattaforma sulla quale sviluppare con successo nuove strategie di sharpening. Trovare nuovi modi di usare in maniera pi\u00f9 sofisticata i soliti vecchi strumenti per ottenere risultati anche leggermente migliori paga per il tempo speso nella ricerca. Ho comunque ancora molti punti aperti, ad esempio come simulare la soglia della USM. Nonostante ci\u00f2 sono abbastanza soddisfatto dei risultati; usare questi strumenti significa aggiungere diversi passaggi (che per\u00f2 possono essere automatizzati) e a seconda del tipo di progetti nei quali si \u00e8 coinvolti, credo che quando sia necessario un controllo pi\u00f9 fine e si abbia il tempo per ricercarlo, sia possibile usare questi workflow anche in ambienti di produzione. Resta comunque una ricerca che ha anche lo scopo di stimolare personali sperimentazioni.<\/p>\n<p>Ho sempre creduto nella condivisione della conoscenza e nei progetti plurali, dunque aspetto suggerimenti, correzioni e proposte. Ho in mente di tenere l\u2019articolo aggiornato, controllate il numero di revisione in alto nella pagina &#8211; ho una lista piuttosto lunga di cose da aggiungere (azioni, script, ecc). Vi invito a lasciare un commento nella sezione apposita &#8211; nel caso vogliate essere avvisati della pubblicazione di nuovo materiale o per altri feedback personali &#8211; undavide at gmail dot com.<\/p>\n<p><a href=\"https:\/\/www.knowhowtransfer.com\/store\/wp-content\/uploads\/2009\/01\/notes_on_sharpening_10-011.jpg\"><img decoding=\"async\" class=\"aligncenter wp-image-10179 size-full\" src=\"https:\/\/www.knowhowtransfer.com\/store\/wp-content\/uploads\/2009\/01\/notes_on_sharpening_10-011.jpg\" alt=\"notes_on_sharpening_10-01\" width=\"863\" height=\"645\" \/><\/a><\/p>\n<hr \/>\n<h3>Davide Barranca<\/h3>\n<p>Lives and works near Bologna, Italy.<br \/> He&#8217;s the developer of ALCE, VitaminBW, Double USM, PS Projects and Floating Adjustments.<br \/> Davide is also a color-management aware photo-retoucher, focused in color-correction and image enhancement in fine-art photography, art reproduction photography and fine-art digital printing. Interested in academic research around digital imaging, stitching, HDRI, custom filters writing.<br \/> Specialties: Pre-press, broad experience in working side by side with photographers trying to convert from artist to technical language.<br \/> <a href=\"http:\/\/www.davidebarranca.com\" target=\"_blank\">You can visit his site here &gt;<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Un nuovo approccio sperimentale alla maschera di contrasto con alto raggio e bassa intensit\u00e0 (o maschera di contrasto inversa).<br \/>\nCome separare la maschera di contrasto per bordi e texture nella stessa gamma di frequenze&#8230;<\/p>\n","protected":false},"author":10,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_et_pb_use_builder":"","_et_pb_old_content":"","_et_gb_content_width":"","footnotes":""},"categories":[54,68,64],"tags":[],"class_list":["post-6089","post","type-post","status-publish","format-standard","hentry","category-3-it","category-resource-full-it","category-resources-it"],"_links":{"self":[{"href":"https:\/\/www.knowhowtransfer.com\/store\/it\/wp-json\/wp\/v2\/posts\/6089","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.knowhowtransfer.com\/store\/it\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.knowhowtransfer.com\/store\/it\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.knowhowtransfer.com\/store\/it\/wp-json\/wp\/v2\/users\/10"}],"replies":[{"embeddable":true,"href":"https:\/\/www.knowhowtransfer.com\/store\/it\/wp-json\/wp\/v2\/comments?post=6089"}],"version-history":[{"count":0,"href":"https:\/\/www.knowhowtransfer.com\/store\/it\/wp-json\/wp\/v2\/posts\/6089\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.knowhowtransfer.com\/store\/it\/wp-json\/wp\/v2\/media?parent=6089"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.knowhowtransfer.com\/store\/it\/wp-json\/wp\/v2\/categories?post=6089"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.knowhowtransfer.com\/store\/it\/wp-json\/wp\/v2\/tags?post=6089"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}