{"id":174,"date":"2020-12-04T00:15:15","date_gmt":"2020-12-04T00:15:15","guid":{"rendered":"http:\/\/med-space.org\/youssef-zaz-master\/?page_id=174"},"modified":"2020-12-15T15:25:21","modified_gmt":"2020-12-15T15:25:21","slug":"detection-contours","status":"publish","type":"page","link":"https:\/\/yzaz.net\/master\/detection-contours\/","title":{"rendered":"D\u00e9tection de contours"},"content":{"rendered":"<p>C\u2019est la d\u00e9tection des fronti\u00e8res. La recherche des contours d\u2019objets est un des probl\u00e8mes les plus \u00e9tudi\u00e9s depuis l&#8217;origine des travaux sur l&#8217;imagerie. D\u00fb \u00e0 la nature tr\u00e8s intuitive du contour qui appara\u00eet tr\u00e8s naturellement comme l&#8217;indice visuel id\u00e9al dans la plus grande partie des situations. es contours sont les lieux de variations significatives de l&#8217;information niveaux de gris. Dans une image de mosa\u00efque de r\u00e9gions parfaitement homog\u00e8nes, les transitions sont strictes, et le contour doit \u00eatre une cha\u00eene de pixels d&#8217;\u00e9paisseur 1.<br \/>\nLa notion de contour \u00e9tant reli\u00e9e \u00e0 celle de variation, c\u2019est une \u00e9valuation de la variation en chaque pixel. Une variation existera si le gradient est localement maximum ou si la d\u00e9riv\u00e9e seconde pr\u00e9sente un passage par z\u00e9ro.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-542 size-full\" src=\"http:\/\/med-space.org\/youssef-zaz-master\/wp-content\/uploads\/2020\/12\/derivee.jpg\" alt=\"\" width=\"622\" height=\"576\" srcset=\"https:\/\/yzaz.net\/master\/wp-content\/uploads\/2020\/12\/derivee.jpg 622w, https:\/\/yzaz.net\/master\/wp-content\/uploads\/2020\/12\/derivee-300x278.jpg 300w\" sizes=\"(max-width: 622px) 100vw, 622px\" \/><\/p>\n<p>Principe de d\u00e9tection : filtre passe haut Approche gradient :<br \/>\n<img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-550 size-full\" src=\"http:\/\/med-space.org\/youssef-zaz-master\/wp-content\/uploads\/2020\/12\/derivee2-1.jpg\" alt=\"\" width=\"685\" height=\"477\" srcset=\"https:\/\/yzaz.net\/master\/wp-content\/uploads\/2020\/12\/derivee2-1.jpg 685w, https:\/\/yzaz.net\/master\/wp-content\/uploads\/2020\/12\/derivee2-1-300x209.jpg 300w\" sizes=\"(max-width: 685px) 100vw, 685px\" \/><strong>Approche Gradient:<\/strong><\/p>\n<p>En consid\u00e9rant l&#8217;image dans un rep\u00e8re orthogonal (Oxy) tel que (Ox) d\u00e9signe l&#8217;axe horizontal et (Oy) l&#8217;axe vertical, le Gradient de l&#8217;image (la luminance f ) en tout point ou pixel de coordonn\u00e9es (x,y) est d\u00e9sign\u00e9 par :<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-552 aligncenter\" src=\"http:\/\/med-space.org\/youssef-zaz-master\/wp-content\/uploads\/2020\/12\/eq2.jpg\" alt=\"\" width=\"201\" height=\"121\" \/><br \/>\nLe module du gradient permet de quantifier l&#8217;importance du contour mis en \u00e9vidence, c&#8217;est\u2010\u00e0\u2010dire l&#8217;amplitude du saut d&#8217;intensit\u00e9 relev\u00e9 dans l&#8217;image :<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"size-medium wp-image-553 aligncenter\" src=\"http:\/\/med-space.org\/youssef-zaz-master\/wp-content\/uploads\/2020\/12\/eq3-300x84.jpg\" alt=\"\" width=\"300\" height=\"84\" srcset=\"https:\/\/yzaz.net\/master\/wp-content\/uploads\/2020\/12\/eq3-300x84.jpg 300w, https:\/\/yzaz.net\/master\/wp-content\/uploads\/2020\/12\/eq3.jpg 350w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><br \/>\nLa direction du gradient permet de d\u00e9terminer l&#8217;ar\u00eate pr\u00e9sente dans l&#8217;image. La direction du gradient est orthogonale \u00e0 celle du contour :<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"size-medium wp-image-553 aligncenter\" src=\"http:\/\/med-space.org\/youssef-zaz-master\/wp-content\/uploads\/2020\/12\/eq3-300x84.jpg\" alt=\"\" width=\"300\" height=\"84\" srcset=\"https:\/\/yzaz.net\/master\/wp-content\/uploads\/2020\/12\/eq3-300x84.jpg 300w, https:\/\/yzaz.net\/master\/wp-content\/uploads\/2020\/12\/eq3.jpg 350w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><\/p>\n<p>Le principe de la d\u00e9tection de contours par l&#8217;utilisation du gradient consiste \u00e0 calculer d&#8217;abord le gradient de l&#8217;image dans deux directions orthogonales puis le module du gradient. Puis s\u00e9lectionner es contours les plus marqu\u00e9s, c&#8217;est\u2010\u00e0\u2010dire les points de plus fort contraste par un seuillage ad\u00e9quat, les directions des contours \u00e9tant orthogonales \u00e0 la direction \u03b10 d\u00e9termin\u00e9e en tout pixel de l&#8217;image:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-556 size-full\" src=\"http:\/\/med-space.org\/youssef-zaz-master\/wp-content\/uploads\/2020\/12\/derivee4.jpg\" alt=\"\" width=\"655\" height=\"344\" srcset=\"https:\/\/yzaz.net\/master\/wp-content\/uploads\/2020\/12\/derivee4.jpg 655w, https:\/\/yzaz.net\/master\/wp-content\/uploads\/2020\/12\/derivee4-300x158.jpg 300w\" sizes=\"(max-width: 655px) 100vw, 655px\" \/><\/p>\n<p><strong>Approximation de base<\/strong><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-615 size-full\" src=\"http:\/\/med-space.org\/youssef-zaz-master\/wp-content\/uploads\/2020\/12\/contours-initial.jpg\" alt=\"\" width=\"1084\" height=\"725\" srcset=\"https:\/\/yzaz.net\/master\/wp-content\/uploads\/2020\/12\/contours-initial.jpg 1084w, https:\/\/yzaz.net\/master\/wp-content\/uploads\/2020\/12\/contours-initial-300x201.jpg 300w, https:\/\/yzaz.net\/master\/wp-content\/uploads\/2020\/12\/contours-initial-1024x685.jpg 1024w, https:\/\/yzaz.net\/master\/wp-content\/uploads\/2020\/12\/contours-initial-768x514.jpg 768w\" sizes=\"(max-width: 1084px) 100vw, 1084px\" \/><\/p>\n<p>&nbsp;<\/p>\n<p><strong>Op\u00e9rateur de Roberts<\/strong><br \/>\nCe masque propos\u00e9 en 1965 permet de calculer un gradient le long des diagonales de l&#8217;image :<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-616 size-full\" src=\"http:\/\/med-space.org\/youssef-zaz-master\/wp-content\/uploads\/2020\/12\/contours-robert.jpg\" alt=\"\" width=\"1084\" height=\"725\" srcset=\"https:\/\/yzaz.net\/master\/wp-content\/uploads\/2020\/12\/contours-robert.jpg 1084w, https:\/\/yzaz.net\/master\/wp-content\/uploads\/2020\/12\/contours-robert-300x201.jpg 300w, https:\/\/yzaz.net\/master\/wp-content\/uploads\/2020\/12\/contours-robert-1024x685.jpg 1024w, https:\/\/yzaz.net\/master\/wp-content\/uploads\/2020\/12\/contours-robert-768x514.jpg 768w\" sizes=\"(max-width: 1084px) 100vw, 1084px\" \/><\/p>\n<pre class=\"brush: matlabkey; title: ; notranslate\" title=\"\">\r\ninput_image = imread('boat.png');\r\ninput_image = uint8(input_image);\r\ninput_image = double(input_image);\r\nfiltered_image = zeros(size(input_image));\r\n% Masque de Robert\r\nMx = [1 0; 0 -1];\r\nMy = [0 1; -1 0];\r\nfor i = 1:size(input_image, 1) - 1\r\nfor j = 1:size(input_image, 2) - 1\r\nGx = sum(sum(Mx.*input_image(i:i+1, j:j+1)));\r\nGy = sum(sum(My.*input_image(i:i+1, j:j+1)));\r\nfiltered_image_x(i, j) = Gx;\r\nfiltered_image_y(i, j) = Gy;\r\nfiltered_image(i, j) = sqrt(Gx.^2 + Gy.^2);\r\nend\r\nend\r\ninput_image = uint8(input_image);\r\nfiltered_image = uint8(filtered_image);\r\nfiltered_image_x = uint8(filtered_image_x);\r\nfiltered_image_y = uint8(filtered_image_y);\r\nsubplot (2,2,1), imshow(input_image), title('input image');\r\nsubplot (2,2,2), imshow(filtered_image_x), title('Contour horizontaux');\r\nsubplot (2,2,3), imshow(filtered_image_y), title('Contour verticaux');\r\nsubplot (2,2,4), imshow(filtered_image), title('Module (Robert)');\r\n<\/pre>\n<p><strong>Op\u00e9rateurs de Prewitt et Sobel<\/strong><br \/>\nLe calcul de gradient est men\u00e9 par l&#8217;interm\u00e9diaire de deux masques, le premier effectuant un gradient horizontal, le second un gradient vertical. L\u00e0 encore, le deuxi\u00e8me masque se d\u00e9duit du premier par une rotation de . Les masques sont donn\u00e9s ci-dessous pour les contours horizontaux puis verticaux.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-559 aligncenter\" src=\"http:\/\/med-space.org\/youssef-zaz-master\/wp-content\/uploads\/2020\/12\/derivee7.jpg\" alt=\"\" width=\"217\" height=\"102\" \/><\/p>\n<p>Lorsque c=1, il s&#8217;agit des op\u00e9rateurs de Prewitt, lorsque c=2, de ceux de Sobel. Par rapport aux pr\u00e9c\u00e9dents, ces masques ont l&#8217;avantage de produire deux effets. Outre le calcul du gradient dans une direction, ces masques effectuent un lissage dans la direction orthogonale. Ce lissage rend ces masques un peu moins sensibles au bruit que les pr\u00e9c\u00e9dents.<\/p>\n<p><strong>Impl\u00e9mentation:<br \/>\n<\/strong><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-617 size-full\" src=\"http:\/\/med-space.org\/youssef-zaz-master\/wp-content\/uploads\/2020\/12\/contours-sobel.jpg\" alt=\"\" width=\"1084\" height=\"725\" srcset=\"https:\/\/yzaz.net\/master\/wp-content\/uploads\/2020\/12\/contours-sobel.jpg 1084w, https:\/\/yzaz.net\/master\/wp-content\/uploads\/2020\/12\/contours-sobel-300x201.jpg 300w, https:\/\/yzaz.net\/master\/wp-content\/uploads\/2020\/12\/contours-sobel-1024x685.jpg 1024w, https:\/\/yzaz.net\/master\/wp-content\/uploads\/2020\/12\/contours-sobel-768x514.jpg 768w\" sizes=\"(max-width: 1084px) 100vw, 1084px\" \/><\/p>\n<p>Impl\u00e9mentation Matlab<\/p>\n<pre class=\"brush: matlabkey; title: ; notranslate\" title=\"\">\r\n% filtre Sobel\r\ninput_image = imread('boat.png');  \r\ninput_image = uint8(input_image); \r\n%input_image = rgb2gray(input_image); \r\ninput_image = double(input_image); \r\nfiltered_image = zeros(size(input_image)); \r\n% filtre Masque Sobel\r\nMx = [-1 0 1; -2 0 2; -1  0  1]; \r\nMy = [1 2 1 ; 0 0 0 ; -1 -2 -1]; \r\nfor i = 2:size(input_image, 1) - 1 \r\n    for j = 2:size(input_image, 2) - 1 \r\n        Gx = sum(sum(Mx.*input_image(i-1:i+1, j-1:j+1))); \r\n        Gy = sum(sum(My.*input_image(i-1:i+1, j-1:j+1))); \r\n\t\tfiltered_image_x(i, j) = Gx;\r\n\t\tfiltered_image_y(i, j) = Gy;                 \r\n        filtered_image(i, j) = sqrt(Gx.^2 + Gy.^2); \r\n    end\r\nend\r\n\r\ninput_image = uint8(input_image); \r\nfiltered_image = uint8(filtered_image); \r\nfiltered_image_x = uint8(filtered_image_x);\r\nfiltered_image_y = uint8(filtered_image_y); \r\n\r\nsubplot (2,2,1), imshow(input_image), title('Image initiale');\r\nsubplot (2,2,2), imshow(filtered_image_x), title('Contour horizontaux');\r\nsubplot (2,2,3), imshow(filtered_image_y), title('Contour verticaux');\r\nsubplot (2,2,4), imshow(filtered_image), title('Module (Sobel)');\r\n<\/pre>\n<p>Exp. : Op\u00e9rateur de Prewitt<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"size-medium wp-image-561 aligncenter\" src=\"http:\/\/med-space.org\/youssef-zaz-master\/wp-content\/uploads\/2020\/12\/derivee9-300x160.jpg\" alt=\"\" width=\"300\" height=\"160\" srcset=\"https:\/\/yzaz.net\/master\/wp-content\/uploads\/2020\/12\/derivee9-300x160.jpg 300w, https:\/\/yzaz.net\/master\/wp-content\/uploads\/2020\/12\/derivee9.jpg 715w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><\/p>\n<h3>D\u00e9tection de contours : Approche Laplacien<\/h3>\n<p>Les op\u00e9rateurs de gradient exploitent le fait qu&#8217;un contour dans une image correspond au maximum du gradient dans la direction orthogonale au contour. Or le passage par z\u00e9ro de la d\u00e9riv\u00e9e seconde d&#8217;une rupture d&#8217;intensit\u00e9 permet \u00e9galement de mettre en \u00e9vidence le contour. La d\u00e9riv\u00e9e seconde est d\u00e9termin\u00e9e par le calcul du Laplacien :<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-621 size-full aligncenter\" src=\"http:\/\/med-space.org\/youssef-zaz-master\/wp-content\/uploads\/2020\/12\/e1.jpg\" alt=\"\" width=\"382\" height=\"71\" srcset=\"https:\/\/yzaz.net\/master\/wp-content\/uploads\/2020\/12\/e1.jpg 382w, https:\/\/yzaz.net\/master\/wp-content\/uploads\/2020\/12\/e1-300x56.jpg 300w\" sizes=\"(max-width: 382px) 100vw, 382px\" \/><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-622 size-full\" src=\"http:\/\/med-space.org\/youssef-zaz-master\/wp-content\/uploads\/2020\/12\/e2.jpg\" alt=\"\" width=\"506\" height=\"35\" srcset=\"https:\/\/yzaz.net\/master\/wp-content\/uploads\/2020\/12\/e2.jpg 506w, https:\/\/yzaz.net\/master\/wp-content\/uploads\/2020\/12\/e2-300x21.jpg 300w\" sizes=\"(max-width: 506px) 100vw, 506px\" \/><\/p>\n<p>Or<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-623 size-full\" src=\"http:\/\/med-space.org\/youssef-zaz-master\/wp-content\/uploads\/2020\/12\/e3.jpg\" alt=\"\" width=\"610\" height=\"74\" srcset=\"https:\/\/yzaz.net\/master\/wp-content\/uploads\/2020\/12\/e3.jpg 610w, https:\/\/yzaz.net\/master\/wp-content\/uploads\/2020\/12\/e3-300x36.jpg 300w\" sizes=\"(max-width: 610px) 100vw, 610px\" \/><\/p>\n<p>et<img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-624 size-full\" src=\"http:\/\/med-space.org\/youssef-zaz-master\/wp-content\/uploads\/2020\/12\/e4.jpg\" alt=\"\" width=\"623\" height=\"78\" srcset=\"https:\/\/yzaz.net\/master\/wp-content\/uploads\/2020\/12\/e4.jpg 623w, https:\/\/yzaz.net\/master\/wp-content\/uploads\/2020\/12\/e4-300x38.jpg 300w\" sizes=\"(max-width: 623px) 100vw, 623px\" \/><\/p>\n<p>Ainsi le Laplacien:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-625 size-full\" src=\"http:\/\/med-space.org\/youssef-zaz-master\/wp-content\/uploads\/2020\/12\/e5.jpg\" alt=\"\" width=\"590\" height=\"36\" srcset=\"https:\/\/yzaz.net\/master\/wp-content\/uploads\/2020\/12\/e5.jpg 590w, https:\/\/yzaz.net\/master\/wp-content\/uploads\/2020\/12\/e5-300x18.jpg 300w\" sizes=\"(max-width: 590px) 100vw, 590px\" \/><\/p>\n<p>Le calcul de Laplacien peut alors \u00eatre appliqu\u00e9e\u00a0 par la convolution de l&#8217;image avec le masque suivant :<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"size-medium wp-image-626 aligncenter\" src=\"http:\/\/med-space.org\/youssef-zaz-master\/wp-content\/uploads\/2020\/12\/e6.jpg\" alt=\"\" width=\"102\" height=\"98\" \/><\/p>\n<p>d&#8217;autres masques peuvent \u00eatre utilis\u00e9s:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-627 size-full\" src=\"http:\/\/med-space.org\/youssef-zaz-master\/wp-content\/uploads\/2020\/12\/e7.jpg\" alt=\"\" width=\"344\" height=\"95\" srcset=\"https:\/\/yzaz.net\/master\/wp-content\/uploads\/2020\/12\/e7.jpg 344w, https:\/\/yzaz.net\/master\/wp-content\/uploads\/2020\/12\/e7-300x83.jpg 300w\" sizes=\"(max-width: 344px) 100vw, 344px\" \/><\/p>\n<p>Cette convolution est tr\u00e8s sensible au bruit en raison de la double d\u00e9rivation. Un seuillage peut \u00eatre utilis\u00e9 pour ne prendre en compte que les passages par z\u00e9ro d&#8217;amplitude relativement \u00e9lev\u00e9e et qui correspondent \u00e0 des vrais contours de l&#8217;image.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-628 size-full\" src=\"http:\/\/med-space.org\/youssef-zaz-master\/wp-content\/uploads\/2020\/12\/e8.jpg\" alt=\"\" width=\"1000\" height=\"347\" srcset=\"https:\/\/yzaz.net\/master\/wp-content\/uploads\/2020\/12\/e8.jpg 1000w, https:\/\/yzaz.net\/master\/wp-content\/uploads\/2020\/12\/e8-300x104.jpg 300w, https:\/\/yzaz.net\/master\/wp-content\/uploads\/2020\/12\/e8-768x266.jpg 768w\" sizes=\"(max-width: 1000px) 100vw, 1000px\" \/><\/p>\n<p><strong>Rem\u00e8de contre la sensibilit\u00e9 au bruit<\/strong><br \/>\nl&#8217;id\u00e9e consiste d&#8217;abord \u00e0 filtrer passe\u2010bas l&#8217;image avant d&#8217;appliquer l&#8217;op\u00e9rateur Laplacien.<\/p>\n<p>Avantages: proche du m\u00e9canisme de la vision humaine. Un seul param\u00e8tre et pas de seuil de significativit\u00e9 de l&#8217;amplitude et Contours ferm\u00e9s<br \/>\nInconv\u00e9nients : Plus grande sensibilit\u00e9 au bruit, pas d&#8217;information sur l&#8217;orientation du contour.<br \/>\nAutres approches tr\u00e8s utilis\u00e9s: Crit\u00e8res de Canny, Filtre de Shen\u2010Castan, Filtre de Deriche et les snackes.<\/p>\n<p>Code Matlab:<\/p>\n<pre class=\"brush: matlabkey; title: ; notranslate\" title=\"\">\r\nI = imread('coins.png');\r\nBW1 = edge(I,'sobel');\r\nBW2 = edge(I,'prewitt');\r\nBW3 = edge(I,'canny');\r\nsubplot ( 2 , 2 , 1 ) ; imshow(I) ; title ( 'Image originale' ) ;\r\nsubplot ( 2 , 2 , 2 ) ; imshow(BW1) ; title ( 'Contour avec Sobel' ) ;\r\nsubplot ( 2 , 2 , 3 ) ; imshow(BW2) ; title ( 'Contour avec prewitt' ) ;\r\nsubplot ( 2 , 2 , 4 ) ; imshow(BW3) ; title ( 'Contour avec Canny' ) ;\r\n<\/pre>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-564 size-full\" src=\"http:\/\/med-space.org\/youssef-zaz-master\/wp-content\/uploads\/2020\/12\/contours.jpg\" alt=\"\" width=\"654\" height=\"587\" srcset=\"https:\/\/yzaz.net\/master\/wp-content\/uploads\/2020\/12\/contours.jpg 654w, https:\/\/yzaz.net\/master\/wp-content\/uploads\/2020\/12\/contours-300x269.jpg 300w\" sizes=\"(max-width: 654px) 100vw, 654px\" \/><\/p>\n","protected":false},"excerpt":{"rendered":"<div class=\"mh-excerpt\"><p>C\u2019est la d\u00e9tection des fronti\u00e8res. La recherche des contours d\u2019objets est un des probl\u00e8mes les plus \u00e9tudi\u00e9s depuis l&#8217;origine des travaux sur l&#8217;imagerie. D\u00fb \u00e0 <a class=\"mh-excerpt-more\" href=\"https:\/\/yzaz.net\/master\/detection-contours\/\" title=\"D\u00e9tection de contours\">[&#8230;]<\/a><\/p>\n<\/div>","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":65,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"_links":{"self":[{"href":"https:\/\/yzaz.net\/master\/wp-json\/wp\/v2\/pages\/174"}],"collection":[{"href":"https:\/\/yzaz.net\/master\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/yzaz.net\/master\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/yzaz.net\/master\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/yzaz.net\/master\/wp-json\/wp\/v2\/comments?post=174"}],"version-history":[{"count":17,"href":"https:\/\/yzaz.net\/master\/wp-json\/wp\/v2\/pages\/174\/revisions"}],"predecessor-version":[{"id":629,"href":"https:\/\/yzaz.net\/master\/wp-json\/wp\/v2\/pages\/174\/revisions\/629"}],"wp:attachment":[{"href":"https:\/\/yzaz.net\/master\/wp-json\/wp\/v2\/media?parent=174"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}