

{"id":78564,"date":"2020-09-12T09:00:18","date_gmt":"2020-09-12T03:30:18","guid":{"rendered":"https:\/\/data-flair.training\/blogs\/?p=78564"},"modified":"2021-05-09T13:13:28","modified_gmt":"2021-05-09T07:43:28","slug":"scipy-image-manipulation-processing","status":"publish","type":"post","link":"https:\/\/data-flair.training\/blogs\/scipy-image-manipulation-processing\/","title":{"rendered":"SciPy Ndimage &#8211; Image Manipulation and Processing in SciPy"},"content":{"rendered":"<p>Scipy is a basic scientific library and contains many sub-packages. There are many general sub-packages. Some other packages are more specific and are key elements in a variety of fields.<\/p>\n<p>One such package is the n-dimensional image package. The ndimage package has vast applications in the field of data science and machine learning.<\/p>\n<h2>SciPy Ndimage<\/h2>\n<p>SciPy contains the ndimage (n-dimensional image) package. It is basically useful for image processing and for image analysis. Its main focus is on image processing.<\/p>\n<p>It includes many image processing features like \u2013 input and output image, classification of images, extraction, manipulations of the image, image segmentation, and filter.<\/p>\n<p>These are some basic operations that we can perform on the images while processing it. There are many more special functions available. We can use the package by scipy.ndimage function.<\/p>\n<h2>Opening and Writing Image Files<\/h2>\n<p>The scipy.ndimage module consists of a misc package. This package consists of a few custom images which we can use for demonstrating the module operations.We plot the image on a graphical scale.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">from scipy import misc\r\nimport matplotlib.pyplot as plt\r\n \r\nf = misc.face()\r\nplt.imshow(f)\r\nplt.show()\r\n<\/pre>\n<p><strong>Output<\/strong><\/p>\n<p><a href=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2020\/09\/code-2.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-82091\" src=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2020\/09\/code-2.png\" alt=\"Scipy Linear Algebra\" width=\"335\" height=\"244\" srcset=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2020\/09\/code-2.png 335w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2020\/09\/code-2-300x219.png 300w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2020\/09\/code-2-150x109.png 150w\" sizes=\"auto, (max-width: 335px) 100vw, 335px\" \/><\/a><\/p>\n<p>The matrix format is for the representation of the images and their color combinations. The changes are made by manipulating these numbers. The color representations can be done either in grayscale or RGB.<\/p>\n<p>We can also scale the images and rotate the images. We can turn the image on any side or make it upside down.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">import numpy as np\r\nfrom scipy import misc  \r\nimport matplotlib.pyplot as plt  \r\n \r\nface = misc.face()  \r\n#flip function\r\nflip_face = np.flip(face)  \r\nplt.imshow(flip_face)  \r\nplt.show()\r\n<\/pre>\n<p><strong>Output<\/strong><\/p>\n<p><a href=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2020\/09\/code2-2.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-82092\" src=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2020\/09\/code2-2.png\" alt=\"SciPy Invert image\" width=\"327\" height=\"265\" srcset=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2020\/09\/code2-2.png 327w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2020\/09\/code2-2-300x243.png 300w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2020\/09\/code2-2-150x122.png 150w\" sizes=\"auto, (max-width: 327px) 100vw, 327px\" \/><\/a><\/p>\n<p>We can also rotate the image at a specific angle. We can pass the degree of rotation as an argument.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">rom scipy import misc,ndimage\r\nimport matplotlib.pyplot as plt  \r\nface = misc.face()  \r\n \r\n#rotate functiom\r\nrotate_face = ndimage.rotate(face, 45)  \r\n  \r\nplt.imshow(rotate_face)  \r\nplt.show() \r\n<\/pre>\n<p><strong>Output<\/strong><\/p>\n<p><a href=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2020\/09\/code3-2.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-82093\" src=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2020\/09\/code3-2.png\" alt=\"SciPy Rotate Image\" width=\"278\" height=\"248\" srcset=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2020\/09\/code3-2.png 278w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2020\/09\/code3-2-150x134.png 150w\" sizes=\"auto, (max-width: 278px) 100vw, 278px\" \/><\/a><\/p>\n<h2>SciPy Image Filters<\/h2>\n<p>We can also modify the images by applying different filters over the images in SciPy. We highlight some sections of the image and implement these filters along with other concepts. The functions apply pixel algorithms to apply filters on the images.<\/p>\n<h3>Blurring image in SciPy<\/h3>\n<p>It is a process of the noise and color reduction of the image. We apply it using the image filter. The sigma argument is to determine the level of blur on the image.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">from scipy import misc  \r\nfrom scipy import ndimage  \r\nimport matplotlib.pyplot as plt\r\n \r\nface = misc.face()  \r\nblurred_img = ndimage.gaussian_filter(face, sigma=4)  \r\n  \r\nplt.imshow(blurred_img)  \r\nplt.show() \r\n<\/pre>\n<p><strong>Output<\/strong><\/p>\n<p><a href=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2020\/09\/code4-2.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-82094\" src=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2020\/09\/code4-2.png\" alt=\"SciPy Image Filter\" width=\"328\" height=\"254\" srcset=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2020\/09\/code4-2.png 328w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2020\/09\/code4-2-300x232.png 300w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2020\/09\/code4-2-150x116.png 150w\" sizes=\"auto, (max-width: 328px) 100vw, 328px\" \/><\/a><\/p>\n<h3>Edge Detection in SciPy<\/h3>\n<p>We have the concept of edge detection in image processing. It is meant to determine the boundaries of the objects inside the image. The output can be then used for image segmentation and data extraction.<\/p>\n<p>First, we generate an image for performing edge detection.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">import scipy.ndimage as nd  \r\nimport numpy as np  \r\nimport matplotlib.pyplot as plt\r\n \r\nim = np.ones((256, 256))  \r\nim[64:-64, 64:-64] = 2  \r\nim[90:-90,90:-90] = 3  \r\nim = ndimage.gaussian_filter(im, 10)  \r\n  \r\nplt.imshow(im)  \r\nplt.show()\r\n<\/pre>\n<p><strong>Output<\/strong><\/p>\n<p><a href=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2020\/09\/code-5-2.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-82095\" src=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2020\/09\/code-5-2.png\" alt=\"SciPy Edge Detection\" width=\"256\" height=\"247\" srcset=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2020\/09\/code-5-2.png 256w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2020\/09\/code-5-2-150x145.png 150w\" sizes=\"auto, (max-width: 256px) 100vw, 256px\" \/><\/a><\/p>\n<p>We have a square to which we will apply the functions of edge detection. We use the sobel() function.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">import scipy.ndimage as nd  \r\nimport matplotlib.pyplot as plt  \r\n \r\nim = np.zeros((256, 256))  \r\nim[64:-64, 64:-64] = 1  \r\nim[90:-90,90:-90] = 2  \r\nim = ndimage.gaussian_filter(im, 8)  \r\nzx = ndimage.sobel(im, axis = 0, mode = 'constant')  \r\nzy = ndimage.sobel(im, axis = 1, mode = 'constant')  \r\nsobl = np.hypot(zx, zy)  \r\nplt.imshow(sobl)  \r\nplt.show()\r\n<\/pre>\n<p><strong>Output<\/strong><\/p>\n<p><a href=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2020\/09\/code-6-2.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-82096\" src=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2020\/09\/code-6-2.png\" alt=\"SciPy ndimage\" width=\"278\" height=\"262\" srcset=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2020\/09\/code-6-2.png 278w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2020\/09\/code-6-2-150x141.png 150w\" sizes=\"auto, (max-width: 278px) 100vw, 278px\" \/><\/a><\/p>\n<h2>Summary<\/h2>\n<p>Image processing is a vast field to work with. The SciPy library consists of the ndimage module for processing images. This module consists of a number of functions for image manipulation.<\/p>\n<p>It consists of rotation functions. It can also apply filters using pixel algorithms. Also, it consists of operations for edge detection that is useful for data segmentation.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Scipy is a basic scientific library and contains many sub-packages. There are many general sub-packages. Some other packages are more specific and are key elements in a variety of fields. One such package is&#46;&#46;&#46;<\/p>\n","protected":false},"author":6,"featured_media":82079,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[22401],"tags":[23244],"class_list":["post-78564","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-numpy","tag-scipy-ndimage"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.8 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>SciPy Ndimage - Image Manipulation and Processing in SciPy - DataFlair<\/title>\n<meta name=\"description\" content=\"The SciPy ndimage submodule is dedicated to image processing. ndimage means an n-dimensional image. Learn Opening and Writing Image Files &amp; Image filters\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/data-flair.training\/blogs\/scipy-image-manipulation-processing\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"SciPy Ndimage - Image Manipulation and Processing in SciPy - DataFlair\" \/>\n<meta property=\"og:description\" content=\"The SciPy ndimage submodule is dedicated to image processing. ndimage means an n-dimensional image. Learn Opening and Writing Image Files &amp; Image filters\" \/>\n<meta property=\"og:url\" content=\"https:\/\/data-flair.training\/blogs\/scipy-image-manipulation-processing\/\" \/>\n<meta property=\"og:site_name\" content=\"DataFlair\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/DataFlairWS\/\" \/>\n<meta property=\"article:published_time\" content=\"2020-09-12T03:30:18+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2021-05-09T07:43:28+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2020\/09\/SciPy-Ndimage.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1200\" \/>\n\t<meta property=\"og:image:height\" content=\"628\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"DataFlair Team\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@DataFlairWS\" \/>\n<meta name=\"twitter:site\" content=\"@DataFlairWS\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"DataFlair Team\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 minutes\" \/>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"SciPy Ndimage - Image Manipulation and Processing in SciPy - DataFlair","description":"The SciPy ndimage submodule is dedicated to image processing. ndimage means an n-dimensional image. Learn Opening and Writing Image Files & Image filters","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/data-flair.training\/blogs\/scipy-image-manipulation-processing\/","og_locale":"en_US","og_type":"article","og_title":"SciPy Ndimage - Image Manipulation and Processing in SciPy - DataFlair","og_description":"The SciPy ndimage submodule is dedicated to image processing. ndimage means an n-dimensional image. Learn Opening and Writing Image Files & Image filters","og_url":"https:\/\/data-flair.training\/blogs\/scipy-image-manipulation-processing\/","og_site_name":"DataFlair","article_publisher":"https:\/\/www.facebook.com\/DataFlairWS\/","article_published_time":"2020-09-12T03:30:18+00:00","article_modified_time":"2021-05-09T07:43:28+00:00","og_image":[{"width":1200,"height":628,"url":"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2020\/09\/SciPy-Ndimage.jpg","type":"image\/jpeg"}],"author":"DataFlair Team","twitter_card":"summary_large_image","twitter_creator":"@DataFlairWS","twitter_site":"@DataFlairWS","twitter_misc":{"Written by":"DataFlair Team","Est. reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/data-flair.training\/blogs\/scipy-image-manipulation-processing\/#article","isPartOf":{"@id":"https:\/\/data-flair.training\/blogs\/scipy-image-manipulation-processing\/"},"author":{"name":"DataFlair Team","@id":"https:\/\/data-flair.training\/blogs\/#\/schema\/person\/2c58ecb4f73a39f0ef993f1ddfcd7b89"},"headline":"SciPy Ndimage &#8211; Image Manipulation and Processing in SciPy","datePublished":"2020-09-12T03:30:18+00:00","dateModified":"2021-05-09T07:43:28+00:00","mainEntityOfPage":{"@id":"https:\/\/data-flair.training\/blogs\/scipy-image-manipulation-processing\/"},"wordCount":471,"commentCount":0,"publisher":{"@id":"https:\/\/data-flair.training\/blogs\/#organization"},"image":{"@id":"https:\/\/data-flair.training\/blogs\/scipy-image-manipulation-processing\/#primaryimage"},"thumbnailUrl":"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2020\/09\/SciPy-Ndimage.jpg","keywords":["SciPy Ndimage"],"articleSection":["NumPy Tutorials"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/data-flair.training\/blogs\/scipy-image-manipulation-processing\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/data-flair.training\/blogs\/scipy-image-manipulation-processing\/","url":"https:\/\/data-flair.training\/blogs\/scipy-image-manipulation-processing\/","name":"SciPy Ndimage - Image Manipulation and Processing in SciPy - DataFlair","isPartOf":{"@id":"https:\/\/data-flair.training\/blogs\/#website"},"primaryImageOfPage":{"@id":"https:\/\/data-flair.training\/blogs\/scipy-image-manipulation-processing\/#primaryimage"},"image":{"@id":"https:\/\/data-flair.training\/blogs\/scipy-image-manipulation-processing\/#primaryimage"},"thumbnailUrl":"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2020\/09\/SciPy-Ndimage.jpg","datePublished":"2020-09-12T03:30:18+00:00","dateModified":"2021-05-09T07:43:28+00:00","description":"The SciPy ndimage submodule is dedicated to image processing. ndimage means an n-dimensional image. Learn Opening and Writing Image Files & Image filters","breadcrumb":{"@id":"https:\/\/data-flair.training\/blogs\/scipy-image-manipulation-processing\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/data-flair.training\/blogs\/scipy-image-manipulation-processing\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/data-flair.training\/blogs\/scipy-image-manipulation-processing\/#primaryimage","url":"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2020\/09\/SciPy-Ndimage.jpg","contentUrl":"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2020\/09\/SciPy-Ndimage.jpg","width":1200,"height":628,"caption":"SciPy Ndimage"},{"@type":"BreadcrumbList","@id":"https:\/\/data-flair.training\/blogs\/scipy-image-manipulation-processing\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Blog Home","item":"https:\/\/data-flair.training\/blogs\/"},{"@type":"ListItem","position":2,"name":"NumPy Tutorials","item":"https:\/\/data-flair.training\/blogs\/category\/numpy\/"},{"@type":"ListItem","position":3,"name":"SciPy Ndimage &#8211; Image Manipulation and Processing in SciPy"}]},{"@type":"WebSite","@id":"https:\/\/data-flair.training\/blogs\/#website","url":"https:\/\/data-flair.training\/blogs\/","name":"DataFlair","description":"Learn Today. Lead Tomorrow.","publisher":{"@id":"https:\/\/data-flair.training\/blogs\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/data-flair.training\/blogs\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/data-flair.training\/blogs\/#organization","name":"DataFlair","url":"https:\/\/data-flair.training\/blogs\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/data-flair.training\/blogs\/#\/schema\/logo\/image\/","url":"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2016\/07\/Data-Flair.png","contentUrl":"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2016\/07\/Data-Flair.png","width":106,"height":48,"caption":"DataFlair"},"image":{"@id":"https:\/\/data-flair.training\/blogs\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/DataFlairWS\/","https:\/\/x.com\/DataFlairWS","https:\/\/www.linkedin.com\/company\/dataflair-web-services-pvt-ltd\/","https:\/\/www.youtube.com\/user\/DataFlairWS"]},{"@type":"Person","@id":"https:\/\/data-flair.training\/blogs\/#\/schema\/person\/2c58ecb4f73a39f0ef993f1ddfcd7b89","name":"DataFlair Team","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/1ce4a0e3e542444fc73bbebf83e89e8b73e2d95ccb1fcee64da9945f078b97c5?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/1ce4a0e3e542444fc73bbebf83e89e8b73e2d95ccb1fcee64da9945f078b97c5?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/1ce4a0e3e542444fc73bbebf83e89e8b73e2d95ccb1fcee64da9945f078b97c5?s=96&d=mm&r=g","caption":"DataFlair Team"},"description":"The DataFlair Team provides industry-driven content on programming, Java, Python, C++, DSA, AI, ML, data Science, Android, Flutter, MERN, Web Development, and technology. Our expert educators focus on delivering value-packed, easy-to-follow resources for tech enthusiasts and professionals.","url":"https:\/\/data-flair.training\/blogs\/author\/dfteam2\/"}]}},"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/posts\/78564","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/users\/6"}],"replies":[{"embeddable":true,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/comments?post=78564"}],"version-history":[{"count":5,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/posts\/78564\/revisions"}],"predecessor-version":[{"id":93200,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/posts\/78564\/revisions\/93200"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/media\/82079"}],"wp:attachment":[{"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/media?parent=78564"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/categories?post=78564"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/tags?post=78564"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}