{"id":3023,"date":"2020-02-12T10:43:21","date_gmt":"2020-02-12T09:43:21","guid":{"rendered":"https:\/\/www.inesem.es\/revistadigital\/informatica-y-tics\/?p=3023"},"modified":"2020-06-10T09:43:14","modified_gmt":"2020-06-10T07:43:14","slug":"opencv","status":"publish","type":"post","link":"https:\/\/www.inesem.es\/revistadigital\/informatica-y-tics\/opencv","title":{"rendered":"\u00bfQu\u00e9 es OpenCV? Instalaci\u00f3n en Python y ejemplos b\u00e1sicos"},"content":{"rendered":"\n<p style=\"text-align: justify;\">Seguro que has o\u00eddo hablar en alguna ocasi\u00f3n de <strong>OpenCV<\/strong> pero, \u00bfrealmente sabes qu\u00e9 es y para qu\u00e9 sirve?<\/p>\n<p style=\"text-align: justify;\">La <strong>visi\u00f3n artificial<\/strong> o por computadora se est\u00e1 utilizando cada vez m\u00e1s para el <strong>an\u00e1lisis y tratamiento de im\u00e1genes<\/strong> mediante algoritmos de inteligencia artificial.<\/p>\n<p style=\"text-align: justify;\">Uno de los usos m\u00e1s importantes de OpenCV en la visi\u00f3n por computadora es la <strong>detecci\u00f3n de rostros y objetos<\/strong>, sobre todo en \u00e1mbitos como la fotograf\u00eda, el marketing o la seguridad.<\/p>\n<p style=\"text-align: justify;\">Si quieres descubrir qu\u00e9 es OpenCV, c\u00f3mo se instala en <strong>Python<\/strong> y ver una serie de <strong>ejemplos b\u00e1sicos<\/strong>, te animo a que sigas leyendo este art\u00edculo.<\/p>\n<p style=\"text-align: justify;\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-3024\" src=\"https:\/\/www.inesem.es\/revistadigital\/informatica-y-tics\/files\/2020\/02\/opencv.jpg\" alt=\"opencv\" width=\"500\" height=\"300\" srcset=\"https:\/\/www.inesem.es\/revistadigital\/informatica-y-tics\/files\/2020\/02\/opencv.jpg 500w, https:\/\/www.inesem.es\/revistadigital\/informatica-y-tics\/files\/2020\/02\/opencv-175x105.jpg 175w\" sizes=\"(max-width: 500px) 100vw, 500px\" \/><\/p>\n<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_72 counter-hierarchy ez-toc-counter ez-toc-grey ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">Table of Contents<\/p>\n<span class=\"ez-toc-title-toggle\"><a href=\"#\" class=\"ez-toc-pull-right ez-toc-btn ez-toc-btn-xs ez-toc-btn-default ez-toc-toggle\" aria-label=\"Toggle Table of Content\"><span class=\"ez-toc-js-icon-con\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #999;color:#999\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #999;color:#999\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/span><\/a><\/span><\/div>\n<nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/www.inesem.es\/revistadigital\/informatica-y-tics\/opencv\/#OpenCV_y_su_instalacion_en_Python\" title=\"OpenCV y su instalaci\u00f3n en Python\">OpenCV y su instalaci\u00f3n en Python<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/www.inesem.es\/revistadigital\/informatica-y-tics\/opencv\/#Imagenes_como_matrices\" title=\"Im\u00e1genes como matrices\">Im\u00e1genes como matrices<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/www.inesem.es\/revistadigital\/informatica-y-tics\/opencv\/#Imagen_binaria\" title=\"Imagen binaria\">Imagen binaria<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/www.inesem.es\/revistadigital\/informatica-y-tics\/opencv\/#Imagen_en_escala_de_grises\" title=\"Imagen en escala de grises\">Imagen en escala de grises<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/www.inesem.es\/revistadigital\/informatica-y-tics\/opencv\/#Imagen_en_color\" title=\"Imagen en color\">Imagen en color<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/www.inesem.es\/revistadigital\/informatica-y-tics\/opencv\/#Imagenes_y_OpenCV\" title=\"Im\u00e1genes y OpenCV\">Im\u00e1genes y OpenCV<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-7\" href=\"https:\/\/www.inesem.es\/revistadigital\/informatica-y-tics\/opencv\/#Importar_imagenes_en_OpenCV\" title=\"Importar im\u00e1genes en OpenCV\">Importar im\u00e1genes en OpenCV<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-8\" href=\"https:\/\/www.inesem.es\/revistadigital\/informatica-y-tics\/opencv\/#Guardar_imagenes\" title=\"Guardar im\u00e1genes\">Guardar im\u00e1genes<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-9\" href=\"https:\/\/www.inesem.es\/revistadigital\/informatica-y-tics\/opencv\/#Operaciones_basicas_con_imagenes\" title=\"Operaciones b\u00e1sicas con im\u00e1genes\">Operaciones b\u00e1sicas con im\u00e1genes<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-10\" href=\"https:\/\/www.inesem.es\/revistadigital\/informatica-y-tics\/opencv\/#Dibujar_en_imagenes\" title=\"Dibujar en im\u00e1genes\">Dibujar en im\u00e1genes<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-11\" href=\"https:\/\/www.inesem.es\/revistadigital\/informatica-y-tics\/opencv\/#Escribir_en_imagenes\" title=\"Escribir en im\u00e1genes\">Escribir en im\u00e1genes<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-12\" href=\"https:\/\/www.inesem.es\/revistadigital\/informatica-y-tics\/opencv\/#Posibilidades_de_OpenCV\" title=\"Posibilidades de OpenCV\">Posibilidades de OpenCV<\/a><\/li><\/ul><\/nav><\/div>\n<h2 style=\"text-align: justify;\"><span class=\"ez-toc-section\" id=\"OpenCV_y_su_instalacion_en_Python\"><\/span>OpenCV y su instalaci\u00f3n en Python<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p style=\"text-align: justify;\"><strong>OpenCV<\/strong> (Open Source Computer Vision) comenz\u00f3 como un proyecto de investigaci\u00f3n en Intel. Actualmente es la <strong>biblioteca de visi\u00f3n por computadora<\/strong> m\u00e1s grande en t\u00e9rminos de funciones pose\u00eddas.<\/p>\n<p style=\"text-align: justify;\">Actualmente, OpenCV contiene implementaciones de <strong>m\u00e1s de 2500 algoritmos<\/strong>. Adem\u00e1s est\u00e1 disponible de forma <strong>gratuita<\/strong> para fines comerciales y acad\u00e9micos.<\/p>\n<p style=\"text-align: justify;\">Esta gran biblioteca tiene interfaces para <strong>m\u00faltiples lenguajes<\/strong>, incluidos Python, Java y C++.<\/p>\n<p style=\"text-align: justify;\">La primera versi\u00f3n de OpenCV, 1.0, se lanz\u00f3 en 2006 y la <strong>comunidad<\/strong> de OpenCV ha crecido a pasos agigantados desde entonces.<\/p>\n<p style=\"text-align: justify;\"><strong>OpenCV-Python<\/strong> es la <strong>API<\/strong> de Python para OpenCV. Adem\u00e1s es compatible con las plataformas m\u00e1s utilizadas, Windows, Mac OS y Linux.<\/p>\n<p style=\"text-align: justify;\">Hay que tener en cuenta que para poder usar esta librer\u00eda de manera \u00f3ptima, se deben tener conocimientos en:<\/p>\n<ul style=\"text-align: justify;\">\n<li>Librer\u00eda <strong>Numpy<\/strong><\/li>\n<li>Librer\u00eda <strong>Matplotlib<\/strong><\/li>\n<\/ul>\n<p style=\"text-align: justify;\">\u00a0Para la instalaci\u00f3n de <strong>OpenCV en Python<\/strong> existen 2 formas:<\/p>\n<ul style=\"text-align: justify;\">\n<li><strong>Desde archivos binarios y archivos fuente precompilados<\/strong>: para ello se debe consultar la documentaci\u00f3n pertinente de cada sistema operativo (Por ejemplo <a href=\"https:\/\/docs.opencv.org\/3.0-beta\/doc\/py_tutorials\/py_setup\/py_setup_in_windows\/py_setup_in_windows.html\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">Windows<\/a> y <a href=\"https:\/\/www.pyimagesearch.com\/2016\/12\/19\/install-opencv-3-on-macos-with-homebrew-the-easy-way\/\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">Mac OS<\/a>.<\/li>\n<li><strong>Mediante paquetes para entornos de escritorio est\u00e1ndar<\/strong> (Windows, MacOS y casi cualquier distribuci\u00f3n GNU\/Linux):\n<ul>\n<li>Si solo se necesita m\u00f3dulos principales se debe ejecutar <strong><em>pip install opencv-python<\/em><\/strong><\/li>\n<li>Si se necesitan tanto m\u00f3dulos principales como adicionales (contrib) se debe ejecutar <em><strong>pip install opencv-contrib-python<\/strong><\/em><\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p style=\"text-align: justify;\">Se puede utilizar <strong>Jupyter<\/strong> o cualquier IDE de Python para escribir estos comandos.<\/p>\n<h2 style=\"text-align: justify;\"><span class=\"ez-toc-section\" id=\"Imagenes_como_matrices\"><\/span>Im\u00e1genes como matrices<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p style=\"text-align: justify;\">Una <strong>imagen<\/strong> no es m\u00e1s que una <strong>matriz<\/strong> est\u00e1ndar de Numpy que contiene <strong>p\u00edxeles de puntos de datos<\/strong>. Cuanto mayor sea el n\u00famero de p\u00edxeles en una imagen, mejor es su resoluci\u00f3n.<\/p>\n<p style=\"text-align: justify;\">Puede pensar que los p\u00edxeles son peque\u00f1os bloques de informaci\u00f3n dispuestos en forma de una cuadr\u00edcula 2D, y la profundidad de un p\u00edxel se refiere a la informaci\u00f3n de color presente en ella.<\/p>\n<p style=\"text-align: justify;\">Para ser procesado por una computadora, una imagen debe convertirse en una <strong>forma binaria<\/strong>. El color de una imagen se puede calcular de la siguiente manera:<\/p>\n<p style=\"text-align: justify;\"><em>N\u00famero de colores \/ sombras = 2^bpp (donde bpp representa bits por pixel)<\/em><\/p>\n<p style=\"text-align: justify;\">Por lo tanto, cuanta m\u00e1s cantidad de bits\/p\u00edxel, m\u00e1s colores posibles en las im\u00e1genes. La siguiente tabla muestra dicha relaci\u00f3n de forma m\u00e1s clara:<\/p>\n<p style=\"text-align: justify;\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-3025\" src=\"https:\/\/www.inesem.es\/revistadigital\/informatica-y-tics\/files\/2020\/02\/bits-por-pixel.png\" alt=\"bits por pixel\" width=\"340\" height=\"318\" srcset=\"https:\/\/www.inesem.es\/revistadigital\/informatica-y-tics\/files\/2020\/02\/bits-por-pixel.png 340w, https:\/\/www.inesem.es\/revistadigital\/informatica-y-tics\/files\/2020\/02\/bits-por-pixel-175x164.png 175w\" sizes=\"(max-width: 340px) 100vw, 340px\" \/><\/p>\n<p style=\"text-align: justify;\">Veamos ahora la representaci\u00f3n de los diferentes tipos de im\u00e1genes:<\/p>\n<h3 style=\"text-align: justify;\"><span class=\"ez-toc-section\" id=\"Imagen_binaria\"><\/span>Imagen binaria<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p style=\"text-align: justify;\">Una imagen binaria consta de 1 bit\/p\u00edxel y, por lo tanto, solo puede tener <strong>dos colores posibles<\/strong>, es decir, blanco o negro.<\/p>\n<p style=\"text-align: justify;\">El negro est\u00e1 representado por el valor 0 mientras que el 1 representa el blanco.<\/p>\n<p style=\"text-align: justify;\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-3026\" src=\"https:\/\/www.inesem.es\/revistadigital\/informatica-y-tics\/files\/2020\/02\/imagen-binaria.png\" alt=\"imagen binaria\" width=\"654\" height=\"390\" srcset=\"https:\/\/www.inesem.es\/revistadigital\/informatica-y-tics\/files\/2020\/02\/imagen-binaria.png 654w, https:\/\/www.inesem.es\/revistadigital\/informatica-y-tics\/files\/2020\/02\/imagen-binaria-175x104.png 175w, https:\/\/www.inesem.es\/revistadigital\/informatica-y-tics\/files\/2020\/02\/imagen-binaria-600x358.png 600w\" sizes=\"(max-width: 654px) 100vw, 654px\" \/><\/p>\n<h3 style=\"text-align: justify;\"><span class=\"ez-toc-section\" id=\"Imagen_en_escala_de_grises\"><\/span>Imagen en escala de grises<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p style=\"text-align: justify;\">Una imagen en escala de grises consta de 8 bits por p\u00edxel. Esto significa que puede tener <strong>256 sombras diferentes<\/strong> donde 0 p\u00edxeles representar\u00e1n el color negro mientras 255 denota el blanco.<\/p>\n<p style=\"text-align: justify;\">Por ejemplo, la imagen a continuaci\u00f3n muestra una imagen en escala de grises representada en forma de matriz.<\/p>\n<p style=\"text-align: justify;\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-3027\" src=\"https:\/\/www.inesem.es\/revistadigital\/informatica-y-tics\/files\/2020\/02\/imagen-escala-grises.png\" alt=\"imagen escala grises\" width=\"315\" height=\"279\" srcset=\"https:\/\/www.inesem.es\/revistadigital\/informatica-y-tics\/files\/2020\/02\/imagen-escala-grises.png 315w, https:\/\/www.inesem.es\/revistadigital\/informatica-y-tics\/files\/2020\/02\/imagen-escala-grises-175x155.png 175w\" sizes=\"(max-width: 315px) 100vw, 315px\" \/><\/p>\n<h3 style=\"text-align: justify;\"><span class=\"ez-toc-section\" id=\"Imagen_en_color\"><\/span>Imagen en color<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p style=\"text-align: justify;\">Las im\u00e1genes en color se representan como una combinaci\u00f3n de <strong>rojo, azul y verde<\/strong>, y todos los dem\u00e1s colores se pueden lograr mezclando estos colores primarios en las proporciones correctas.<\/p>\n<p style=\"text-align: justify;\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-3028\" src=\"https:\/\/www.inesem.es\/revistadigital\/informatica-y-tics\/files\/2020\/02\/imagen-color.png\" alt=\"imagen color\" width=\"350\" height=\"332\" srcset=\"https:\/\/www.inesem.es\/revistadigital\/informatica-y-tics\/files\/2020\/02\/imagen-color.png 707w, https:\/\/www.inesem.es\/revistadigital\/informatica-y-tics\/files\/2020\/02\/imagen-color-175x166.png 175w, https:\/\/www.inesem.es\/revistadigital\/informatica-y-tics\/files\/2020\/02\/imagen-color-600x569.png 600w\" sizes=\"(max-width: 350px) 100vw, 350px\" \/><\/p>\n<p style=\"text-align: justify;\">Una imagen en color tambi\u00e9n consta de 8 bits por p\u00edxel. Como resultado, se pueden representar 256 tonos de colores diferentes con 0 que denota negro y 255 blanco.<\/p>\n<p style=\"text-align: justify;\">Veamos la famosa imagen coloreada de un mandril que se ha citado en muchos ejemplos de <strong>procesamiento de im\u00e1genes<\/strong>.<\/p>\n<p style=\"text-align: justify;\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-3029\" src=\"https:\/\/www.inesem.es\/revistadigital\/informatica-y-tics\/files\/2020\/02\/imagen-mandril.jpg\" alt=\"imagen mandril\" width=\"288\" height=\"288\" srcset=\"https:\/\/www.inesem.es\/revistadigital\/informatica-y-tics\/files\/2020\/02\/imagen-mandril.jpg 288w, https:\/\/www.inesem.es\/revistadigital\/informatica-y-tics\/files\/2020\/02\/imagen-mandril-175x175.jpg 175w, https:\/\/www.inesem.es\/revistadigital\/informatica-y-tics\/files\/2020\/02\/imagen-mandril-110x110.jpg 110w\" sizes=\"(max-width: 288px) 100vw, 288px\" \/><\/p>\n<p style=\"text-align: justify;\">Si comprob\u00e1ramos la forma de la imagen de arriba, obtendr\u00edamos:<\/p>\n<p style=\"text-align: justify;\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-3030\" src=\"https:\/\/www.inesem.es\/revistadigital\/informatica-y-tics\/files\/2020\/02\/mandril-1.png\" alt=\"mandril 1\" width=\"206\" height=\"171\" srcset=\"https:\/\/www.inesem.es\/revistadigital\/informatica-y-tics\/files\/2020\/02\/mandril-1.png 206w, https:\/\/www.inesem.es\/revistadigital\/informatica-y-tics\/files\/2020\/02\/mandril-1-175x145.png 175w\" sizes=\"(max-width: 206px) 100vw, 206px\" \/><\/p>\n<p style=\"text-align: justify;\">Esto significa que podemos representar la imagen de arriba en forma de una matriz tridimensional.<\/p>\n<p style=\"text-align: justify;\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-3031\" src=\"https:\/\/www.inesem.es\/revistadigital\/informatica-y-tics\/files\/2020\/02\/mandril-tridimensional.png\" alt=\"mandril tridimensional\" width=\"496\" height=\"371\" srcset=\"https:\/\/www.inesem.es\/revistadigital\/informatica-y-tics\/files\/2020\/02\/mandril-tridimensional.png 496w, https:\/\/www.inesem.es\/revistadigital\/informatica-y-tics\/files\/2020\/02\/mandril-tridimensional-175x131.png 175w, https:\/\/www.inesem.es\/revistadigital\/informatica-y-tics\/files\/2020\/02\/mandril-tridimensional-574x430.png 574w\" sizes=\"(max-width: 496px) 100vw, 496px\" \/><\/p>\n<h2 style=\"text-align: justify;\"><span class=\"ez-toc-section\" id=\"Imagenes_y_OpenCV\"><\/span>Im\u00e1genes y OpenCV<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p style=\"text-align: justify;\">Se puede utilizar OpenCV para realizar <strong>operaciones simples con im\u00e1genes<\/strong> como:<\/p>\n<ul style=\"text-align: justify;\">\n<li>Abrir y guardar im\u00e1genes<\/li>\n<li>Dibujar formas simples en im\u00e1genes<\/li>\n<li>Escribir en im\u00e1genes<\/li>\n<\/ul>\n<p style=\"text-align: justify;\">Estas son operaciones b\u00e1sicas necesarias para crear una <strong>base<\/strong> antes de avanzar y poder utilizar todas las<strong> funciones avanzadas<\/strong> que OpenCV ofrece.<\/p>\n<p style=\"text-align: justify;\">Para los siguientes ejemplos utilizaremos Jupyter como IDE de Python.<\/p>\n<h3 style=\"text-align: justify;\"><span class=\"ez-toc-section\" id=\"Importar_imagenes_en_OpenCV\"><\/span>Importar im\u00e1genes en OpenCV<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p style=\"text-align: justify;\">Para poder importar im\u00e1genes en OpenCV hay que seguir los siguientes pasos:<\/p>\n<p style=\"text-align: justify;\">1) Importar las <strong>bibliotecas<\/strong> necesarias<\/p>\n<p style=\"text-align: justify;\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-3032\" src=\"https:\/\/www.inesem.es\/revistadigital\/informatica-y-tics\/files\/2020\/02\/importar-im\u00e1genes-1.png\" alt=\"importar im\u00e1genes 1\" width=\"319\" height=\"138\" srcset=\"https:\/\/www.inesem.es\/revistadigital\/informatica-y-tics\/files\/2020\/02\/importar-im\u00e1genes-1.png 319w, https:\/\/www.inesem.es\/revistadigital\/informatica-y-tics\/files\/2020\/02\/importar-im\u00e1genes-1-175x76.png 175w\" sizes=\"(max-width: 319px) 100vw, 319px\" \/><\/p>\n<p style=\"text-align: justify;\">2) <strong>Leer<\/strong> <strong>la imagen<\/strong> utilizando la funci\u00f3n <em><strong>imread<\/strong><\/em>. Para este ejemplo utilizaremos la imagen del mandril (Se puede descargar <a href=\"https:\/\/github.com\/parulnith\/Face-Detection-in-Python-using-OpenCV\/blob\/master\/opening%20images%20with%20opencv\/mandrill_colour.png\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">aqu\u00ed<\/a>)<\/p>\n<p style=\"text-align: justify;\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-3033\" src=\"https:\/\/www.inesem.es\/revistadigital\/informatica-y-tics\/files\/2020\/02\/importar-im\u00e1genes-2.png\" alt=\"importar im\u00e1genes 2\" width=\"315\" height=\"43\" srcset=\"https:\/\/www.inesem.es\/revistadigital\/informatica-y-tics\/files\/2020\/02\/importar-im\u00e1genes-2.png 315w, https:\/\/www.inesem.es\/revistadigital\/informatica-y-tics\/files\/2020\/02\/importar-im\u00e1genes-2-175x24.png 175w\" sizes=\"(max-width: 315px) 100vw, 315px\" \/><\/p>\n<p style=\"text-align: justify;\">3) Elegir el <strong>tipo<\/strong> y la <strong>forma<\/strong> de la <strong>matriz<\/strong>. Con el siguiente c\u00f3digo transformaremos la imagen en una matriz numpy con una forma de 1300&#215;1950 y con 3 canales.<\/p>\n<p style=\"text-align: justify;\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-3034\" src=\"https:\/\/www.inesem.es\/revistadigital\/informatica-y-tics\/files\/2020\/02\/importar-im\u00e1genes-3.png\" alt=\"importar im\u00e1genes 3\" width=\"194\" height=\"171\" srcset=\"https:\/\/www.inesem.es\/revistadigital\/informatica-y-tics\/files\/2020\/02\/importar-im\u00e1genes-3.png 194w, https:\/\/www.inesem.es\/revistadigital\/informatica-y-tics\/files\/2020\/02\/importar-im\u00e1genes-3-175x154.png 175w\" sizes=\"(max-width: 194px) 100vw, 194px\" \/><\/p>\n<p style=\"text-align: justify;\">4) <strong>Ver la imagen<\/strong><\/p>\n<p style=\"text-align: justify;\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-3035\" src=\"https:\/\/www.inesem.es\/revistadigital\/informatica-y-tics\/files\/2020\/02\/importar-im\u00e1genes-4.png\" alt=\"importar im\u00e1genes 4\" width=\"191\" height=\"44\" srcset=\"https:\/\/www.inesem.es\/revistadigital\/informatica-y-tics\/files\/2020\/02\/importar-im\u00e1genes-4.png 191w, https:\/\/www.inesem.es\/revistadigital\/informatica-y-tics\/files\/2020\/02\/importar-im\u00e1genes-4-175x40.png 175w\" sizes=\"(max-width: 191px) 100vw, 191px\" \/><\/p>\n<p style=\"text-align: justify;\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-3036\" src=\"https:\/\/www.inesem.es\/revistadigital\/informatica-y-tics\/files\/2020\/02\/importar-im\u00e1genes-5.jpg\" alt=\"importar im\u00e1genes 5\" width=\"308\" height=\"280\" srcset=\"https:\/\/www.inesem.es\/revistadigital\/informatica-y-tics\/files\/2020\/02\/importar-im\u00e1genes-5.jpg 308w, https:\/\/www.inesem.es\/revistadigital\/informatica-y-tics\/files\/2020\/02\/importar-im\u00e1genes-5-175x159.jpg 175w\" sizes=\"(max-width: 308px) 100vw, 308px\" \/><\/p>\n<p style=\"text-align: justify;\">Lo que obtenemos como resultado es un poco diferente con respecto al color. Esper\u00e1bamos una imagen de colores brillantes, pero lo que obtenemos es una imagen con cierto matiz azulado.<\/p>\n<p style=\"text-align: justify;\">Eso sucede porque OpenCV y matplotlib tienen diferentes <strong>\u00f3rdenes de colores primarios<\/strong>. Mientras que OpenCV lee im\u00e1genes en forma de <strong>BGR<\/strong>, matplotlib, por otro lado, sigue el orden <strong>RGB<\/strong>.<\/p>\n<p style=\"text-align: justify;\">Por lo tanto, cuando leemos un archivo a trav\u00e9s de OpenCV, lo leemos como si contuviera canales en el orden de azul, verde y rojo.<\/p>\n<p style=\"text-align: justify;\">Sin embargo, cuando mostramos la imagen usando matplotlib, el canal rojo y el azul se intercambian y, de ah\u00ed, el tinte azul.<\/p>\n<p style=\"text-align: justify;\">Para evitar este problema, transformaremos el canal a la forma en que matplotlib espera que se use la funci\u00f3n <em><strong>cvtColor<\/strong><\/em>.<\/p>\n<p style=\"text-align: justify;\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-3037\" src=\"https:\/\/www.inesem.es\/revistadigital\/informatica-y-tics\/files\/2020\/02\/importar-im\u00e1genes-6.png\" alt=\"importar im\u00e1genes 6\" width=\"435\" height=\"69\" srcset=\"https:\/\/www.inesem.es\/revistadigital\/informatica-y-tics\/files\/2020\/02\/importar-im\u00e1genes-6.png 435w, https:\/\/www.inesem.es\/revistadigital\/informatica-y-tics\/files\/2020\/02\/importar-im\u00e1genes-6-175x28.png 175w\" sizes=\"(max-width: 435px) 100vw, 435px\" \/><\/p>\n<p style=\"text-align: justify;\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-3038\" src=\"https:\/\/www.inesem.es\/revistadigital\/informatica-y-tics\/files\/2020\/02\/importar-im\u00e1genes-7.jpg\" alt=\"importar im\u00e1genes 7\" width=\"288\" height=\"288\" srcset=\"https:\/\/www.inesem.es\/revistadigital\/informatica-y-tics\/files\/2020\/02\/importar-im\u00e1genes-7.jpg 288w, https:\/\/www.inesem.es\/revistadigital\/informatica-y-tics\/files\/2020\/02\/importar-im\u00e1genes-7-175x175.jpg 175w, https:\/\/www.inesem.es\/revistadigital\/informatica-y-tics\/files\/2020\/02\/importar-im\u00e1genes-7-110x110.jpg 110w\" sizes=\"(max-width: 288px) 100vw, 288px\" \/><\/p>\n<h3 style=\"text-align: justify;\"><span class=\"ez-toc-section\" id=\"Guardar_imagenes\"><\/span>Guardar im\u00e1genes<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p style=\"text-align: justify;\">Las im\u00e1genes se pueden <strong>guardar<\/strong> en el directorio de trabajo de la siguiente manera:<\/p>\n<p style=\"text-align: justify;\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-3039\" src=\"https:\/\/www.inesem.es\/revistadigital\/informatica-y-tics\/files\/2020\/02\/guardar-imagen.png\" alt=\"guardar imagen\" width=\"328\" height=\"48\" srcset=\"https:\/\/www.inesem.es\/revistadigital\/informatica-y-tics\/files\/2020\/02\/guardar-imagen.png 328w, https:\/\/www.inesem.es\/revistadigital\/informatica-y-tics\/files\/2020\/02\/guardar-imagen-175x26.png 175w\" sizes=\"(max-width: 328px) 100vw, 328px\" \/><\/p>\n<p style=\"text-align: justify;\">Donde \u201c<em>final_image<\/em>\u201d es el nombre de la imagen que se guardar\u00e1.<\/p>\n<h2 style=\"text-align: justify;\"><span class=\"ez-toc-section\" id=\"Operaciones_basicas_con_imagenes\"><\/span>Operaciones b\u00e1sicas con im\u00e1genes<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p style=\"text-align: justify;\">Por \u00faltimo vamos a ver c\u00f3mo podemos <strong>dibujar<\/strong> varias formas en una imagen existente para tener una idea de c\u00f3mo trabajar con OpenCV.<\/p>\n<h3 style=\"text-align: justify;\"><span class=\"ez-toc-section\" id=\"Dibujar_en_imagenes\"><\/span>Dibujar en im\u00e1genes<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p style=\"text-align: justify;\">Para dibujar en una imagen ya existente en primer lugar hay que <strong>importar las bibliotecas<\/strong> necesarias:<\/p>\n<p style=\"text-align: justify;\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-3040\" src=\"https:\/\/www.inesem.es\/revistadigital\/informatica-y-tics\/files\/2020\/02\/dibujar-en-im\u00e1genes-1.png\" alt=\"dibujar en im\u00e1genes 1\" width=\"325\" height=\"144\" srcset=\"https:\/\/www.inesem.es\/revistadigital\/informatica-y-tics\/files\/2020\/02\/dibujar-en-im\u00e1genes-1.png 325w, https:\/\/www.inesem.es\/revistadigital\/informatica-y-tics\/files\/2020\/02\/dibujar-en-im\u00e1genes-1-175x78.png 175w\" sizes=\"(max-width: 325px) 100vw, 325px\" \/><\/p>\n<p style=\"text-align: justify;\">Despu\u00e9s hay que crear una <strong>imagen en negro<\/strong> que har\u00e1 de plantilla:<\/p>\n<p style=\"text-align: justify;\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-3041\" src=\"https:\/\/www.inesem.es\/revistadigital\/informatica-y-tics\/files\/2020\/02\/dibujar-en-im\u00e1genes-2.png\" alt=\"dibujar en im\u00e1genes 2\" width=\"533\" height=\"47\" srcset=\"https:\/\/www.inesem.es\/revistadigital\/informatica-y-tics\/files\/2020\/02\/dibujar-en-im\u00e1genes-2.png 533w, https:\/\/www.inesem.es\/revistadigital\/informatica-y-tics\/files\/2020\/02\/dibujar-en-im\u00e1genes-2-175x15.png 175w\" sizes=\"(max-width: 533px) 100vw, 533px\" \/><\/p>\n<p style=\"text-align: justify;\">Mostraremos la imagen en negro:<\/p>\n<p style=\"text-align: justify;\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-3042\" src=\"https:\/\/www.inesem.es\/revistadigital\/informatica-y-tics\/files\/2020\/02\/dibujar-en-im\u00e1genes-3.png\" alt=\"dibujar en im\u00e1genes 3\" width=\"232\" height=\"46\" srcset=\"https:\/\/www.inesem.es\/revistadigital\/informatica-y-tics\/files\/2020\/02\/dibujar-en-im\u00e1genes-3.png 232w, https:\/\/www.inesem.es\/revistadigital\/informatica-y-tics\/files\/2020\/02\/dibujar-en-im\u00e1genes-3-175x35.png 175w\" sizes=\"(max-width: 232px) 100vw, 232px\" \/><\/p>\n<p style=\"text-align: justify;\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-3043\" src=\"https:\/\/www.inesem.es\/revistadigital\/informatica-y-tics\/files\/2020\/02\/dibujar-en-im\u00e1genes-4.png\" alt=\"dibujar en im\u00e1genes 4\" width=\"395\" height=\"311\" srcset=\"https:\/\/www.inesem.es\/revistadigital\/informatica-y-tics\/files\/2020\/02\/dibujar-en-im\u00e1genes-4.png 395w, https:\/\/www.inesem.es\/revistadigital\/informatica-y-tics\/files\/2020\/02\/dibujar-en-im\u00e1genes-4-175x138.png 175w\" sizes=\"(max-width: 395px) 100vw, 395px\" \/><\/p>\n<p style=\"text-align: justify;\">La <strong>funci\u00f3n<\/strong> generalizada <strong>para dibujar formas en im\u00e1genes<\/strong> es:<\/p>\n<p style=\"text-align: justify;\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-3044\" src=\"https:\/\/www.inesem.es\/revistadigital\/informatica-y-tics\/files\/2020\/02\/dibujar-en-im\u00e1genes-5.png\" alt=\"dibujar en im\u00e1genes 5\" width=\"586\" height=\"44\" srcset=\"https:\/\/www.inesem.es\/revistadigital\/informatica-y-tics\/files\/2020\/02\/dibujar-en-im\u00e1genes-5.png 586w, https:\/\/www.inesem.es\/revistadigital\/informatica-y-tics\/files\/2020\/02\/dibujar-en-im\u00e1genes-5-175x13.png 175w\" sizes=\"(max-width: 586px) 100vw, 586px\" \/><\/p>\n<p style=\"text-align: justify;\">Hay algunos <strong>argumentos comunes<\/strong> que se pasan para dibujar formas en las im\u00e1genes:<\/p>\n<ul style=\"text-align: justify;\">\n<li><strong>Imagen<\/strong> en la que se dibujar\u00e1n las formas.<\/li>\n<li><strong>Coordenadas<\/strong> de la forma a dibujar desde <em>Pt1<\/em> (arriba a la izquierda) hasta <em>Pt2<\/em> (abajo a la derecha).<\/li>\n<li><strong>Color<\/strong>: color de la forma que se va a dibujar. Se pasa como una tupla, por ejemplo: (255,0,0). Para escala de grises, ser\u00e1 la escala de brillo.<\/li>\n<li>El <strong>grosor<\/strong> de la figura geom\u00e9trica.<\/li>\n<\/ul>\n<p style=\"text-align: justify;\">Veamos como dibujar varias figuras:<\/p>\n<p style=\"text-align: justify;\"><span style=\"text-decoration: underline;\"><strong>L\u00ednea recta<\/strong><\/span><\/p>\n<p style=\"text-align: justify;\">Dibujar una l\u00ednea recta a trav\u00e9s de una imagen requiere especificar los <strong>puntos<\/strong>, a trav\u00e9s de los cuales pasar\u00e1 la l\u00ednea.<\/p>\n<p style=\"text-align: justify;\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-3045\" src=\"https:\/\/www.inesem.es\/revistadigital\/informatica-y-tics\/files\/2020\/02\/linea-roja.png\" alt=\"linea roja\" width=\"806\" height=\"410\" srcset=\"https:\/\/www.inesem.es\/revistadigital\/informatica-y-tics\/files\/2020\/02\/linea-roja.png 806w, https:\/\/www.inesem.es\/revistadigital\/informatica-y-tics\/files\/2020\/02\/linea-roja-175x89.png 175w, https:\/\/www.inesem.es\/revistadigital\/informatica-y-tics\/files\/2020\/02\/linea-roja-768x391.png 768w, https:\/\/www.inesem.es\/revistadigital\/informatica-y-tics\/files\/2020\/02\/linea-roja-600x305.png 600w\" sizes=\"(max-width: 806px) 100vw, 806px\" \/><\/p>\n<p style=\"text-align: justify;\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-3046\" src=\"https:\/\/www.inesem.es\/revistadigital\/informatica-y-tics\/files\/2020\/02\/linea-verde.png\" alt=\"linea verde\" width=\"806\" height=\"399\" srcset=\"https:\/\/www.inesem.es\/revistadigital\/informatica-y-tics\/files\/2020\/02\/linea-verde.png 806w, https:\/\/www.inesem.es\/revistadigital\/informatica-y-tics\/files\/2020\/02\/linea-verde-175x87.png 175w, https:\/\/www.inesem.es\/revistadigital\/informatica-y-tics\/files\/2020\/02\/linea-verde-768x380.png 768w, https:\/\/www.inesem.es\/revistadigital\/informatica-y-tics\/files\/2020\/02\/linea-verde-600x297.png 600w\" sizes=\"(max-width: 806px) 100vw, 806px\" \/><\/p>\n<p style=\"text-align: justify;\"><b><u>Rect\u00e1ngulo<\/u><\/b><\/p>\n<p style=\"text-align: justify;\">Para un rect\u00e1ngulo, necesitamos especificar las c<strong>oordenadas superior izquierda e inferior derecha<\/strong>.<\/p>\n<p style=\"text-align: justify;\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-3047\" src=\"https:\/\/www.inesem.es\/revistadigital\/informatica-y-tics\/files\/2020\/02\/rectangulo.png\" alt=\"rectangulo\" width=\"791\" height=\"423\" srcset=\"https:\/\/www.inesem.es\/revistadigital\/informatica-y-tics\/files\/2020\/02\/rectangulo.png 791w, https:\/\/www.inesem.es\/revistadigital\/informatica-y-tics\/files\/2020\/02\/rectangulo-175x94.png 175w, https:\/\/www.inesem.es\/revistadigital\/informatica-y-tics\/files\/2020\/02\/rectangulo-768x411.png 768w, https:\/\/www.inesem.es\/revistadigital\/informatica-y-tics\/files\/2020\/02\/rectangulo-600x321.png 600w\" sizes=\"(max-width: 791px) 100vw, 791px\" \/><\/p>\n<p style=\"text-align: justify;\"><span style=\"text-decoration: underline;\"><strong>C\u00edrculo<\/strong><\/span><\/p>\n<p style=\"text-align: justify;\">Para un c\u00edrculo, necesitamos pasar sus <strong>coordenadas centrales y el valor del radio<\/strong>. Dibujemos un c\u00edrculo dentro del rect\u00e1ngulo dibujado arriba.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-3048\" src=\"https:\/\/www.inesem.es\/revistadigital\/informatica-y-tics\/files\/2020\/02\/circulo.png\" alt=\"circulo\" width=\"797\" height=\"368\" srcset=\"https:\/\/www.inesem.es\/revistadigital\/informatica-y-tics\/files\/2020\/02\/circulo.png 797w, https:\/\/www.inesem.es\/revistadigital\/informatica-y-tics\/files\/2020\/02\/circulo-175x81.png 175w, https:\/\/www.inesem.es\/revistadigital\/informatica-y-tics\/files\/2020\/02\/circulo-768x355.png 768w, https:\/\/www.inesem.es\/revistadigital\/informatica-y-tics\/files\/2020\/02\/circulo-600x277.png 600w\" sizes=\"(max-width: 797px) 100vw, 797px\" \/><\/p>\n<h2 style=\"text-align: justify;\"><span class=\"ez-toc-section\" id=\"Escribir_en_imagenes\"><\/span>Escribir en im\u00e1genes<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p style=\"text-align: justify;\">Agregar <strong>texto a las im\u00e1genes<\/strong> tambi\u00e9n es similar a dibujar formas en ellas.<\/p>\n<p style=\"text-align: justify;\">La diferencia es que se debe especificar ciertos argumentos antes de hacerlo:<\/p>\n<ul>\n<li style=\"text-align: justify;\"><strong>Texto<\/strong> a escribir<\/li>\n<li style=\"text-align: justify;\"><strong>Coordenadas<\/strong> del texto. El texto en una imagen comienza desde la direcci\u00f3n inferior izquierda.<\/li>\n<li style=\"text-align: justify;\"><strong>Tipo de fuente y escala<\/strong>.<\/li>\n<li style=\"text-align: justify;\"><strong>Otros atributos<\/strong> como color, grosor y tipo de l\u00ednea. Normalmente el tipo de l\u00ednea que se usa es <em>lineType = cv2.LINE_AA<\/em>.<\/li>\n<\/ul>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-3049\" src=\"https:\/\/www.inesem.es\/revistadigital\/informatica-y-tics\/files\/2020\/02\/texto-imagen.png\" alt=\"texto imagen\" width=\"804\" height=\"417\" srcset=\"https:\/\/www.inesem.es\/revistadigital\/informatica-y-tics\/files\/2020\/02\/texto-imagen.png 804w, https:\/\/www.inesem.es\/revistadigital\/informatica-y-tics\/files\/2020\/02\/texto-imagen-345x180.png 345w, https:\/\/www.inesem.es\/revistadigital\/informatica-y-tics\/files\/2020\/02\/texto-imagen-175x91.png 175w, https:\/\/www.inesem.es\/revistadigital\/informatica-y-tics\/files\/2020\/02\/texto-imagen-768x398.png 768w, https:\/\/www.inesem.es\/revistadigital\/informatica-y-tics\/files\/2020\/02\/texto-imagen-600x311.png 600w\" sizes=\"(max-width: 804px) 100vw, 804px\" \/><\/p>\n<h2 style=\"text-align: justify;\"><span class=\"ez-toc-section\" id=\"Posibilidades_de_OpenCV\"><\/span>Posibilidades de OpenCV<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p style=\"text-align: justify;\">Las <strong>posibilidades<\/strong> de <strong>an\u00e1lisis y tratamiento de im\u00e1genes<\/strong> con la biblioteca OpenCV son <strong>inmensas<\/strong>, desde detectar caras y clasificarlas seg\u00fan g\u00e9nero hasta crear modelos de realidad aumentada o usar clasificadores para detectar objetos.<\/p>\n<p style=\"text-align: justify;\">En la p\u00e1gina oficial de <a href=\"https:\/\/opencv.org\/\" target=\"_blank\" rel=\"noopener noreferrer\">OpenCV<\/a> encontrar\u00e1s <strong>documentaci\u00f3n, tutoriales, foros<\/strong> y multitud de funcionalidades m\u00e1s de gran utilidad.<\/p>\n<p style=\"text-align: justify;\">El movimiento se demuestra andando y para aprender todas las posibilidades de esta gran biblioteca solo existe un camino, practicar y practicar \u201c<em>picando<\/em>\u201d c\u00f3digo.<\/p>\n<p style=\"text-align: justify;\">Si te ha gustado este art\u00edculo y quieres leer otros escritos por m\u00ed puedes hacerlo<strong> <a href=\"https:\/\/www.inesem.es\/revistadigital\/informatica-y-tics\/autores\/rafael-marin\/\" target=\"_blank\" rel=\"noopener noreferrer\">aqu\u00ed<\/a>.<\/strong><\/p>\n","protected":false},"excerpt":{"rendered":"<p>OpenCV es la biblioteca de visi\u00f3n por computadora m\u00e1s grande en t\u00e9rminos de funciones pose\u00eddas. Si deseas descubrir c\u00f3mo se puede instalar esta biblioteca en Python y ver una serie de ejemplos b\u00e1sicos debes leer este art\u00edculo.<\/p>\n","protected":false},"author":90976,"featured_media":3050,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[729],"class_list":["post-3023","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-analisis-de-datos"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v23.5 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>OpenCV, Instalaci\u00f3n en Python y ejemplos b\u00e1sicos<\/title>\n<meta name=\"description\" content=\"Si quieres descubrir qu\u00e9 es OpenCV, c\u00f3mo se instala en Python y ver una serie de ejemplos b\u00e1sicos, este art\u00edculo es el indicado.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.inesem.es\/revistadigital\/informatica-y-tics\/opencv\" \/>\n<meta property=\"og:locale\" content=\"es_ES\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"OpenCV, Instalaci\u00f3n en Python y ejemplos b\u00e1sicos\" \/>\n<meta property=\"og:description\" content=\"Si quieres descubrir qu\u00e9 es OpenCV, c\u00f3mo se instala en Python y ver una serie de ejemplos b\u00e1sicos, este art\u00edculo es el indicado.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.inesem.es\/revistadigital\/informatica-y-tics\/opencv\" \/>\n<meta property=\"og:site_name\" content=\"Canal Inform\u00e1tica y TICS\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/InesemBusinessSchool\/\" \/>\n<meta property=\"article:published_time\" content=\"2020-02-12T09:43:21+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2020-06-10T07:43:14+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.inesem.es\/revistadigital\/informatica-y-tics\/files\/2020\/02\/portada.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1620\" \/>\n\t<meta property=\"og:image:height\" content=\"1080\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Rafael Mar\u00edn\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@inesem\" \/>\n<meta name=\"twitter:site\" content=\"@inesem\" \/>\n<meta name=\"twitter:label1\" content=\"Escrito por\" \/>\n\t<meta name=\"twitter:data1\" content=\"Rafael Mar\u00edn\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tiempo de lectura\" \/>\n\t<meta name=\"twitter:data2\" content=\"7 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.inesem.es\/revistadigital\/informatica-y-tics\/opencv#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.inesem.es\/revistadigital\/informatica-y-tics\/opencv\"},\"author\":{\"name\":\"Rafael Mar\u00edn\",\"@id\":\"https:\/\/www.inesem.es\/revistadigital\/informatica-y-tics\/#\/schema\/person\/ec323f7b4aed4a9f5ba04f2df32e0673\"},\"headline\":\"\u00bfQu\u00e9 es OpenCV? Instalaci\u00f3n en Python y ejemplos b\u00e1sicos\",\"datePublished\":\"2020-02-12T09:43:21+00:00\",\"dateModified\":\"2020-06-10T07:43:14+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.inesem.es\/revistadigital\/informatica-y-tics\/opencv\"},\"wordCount\":1439,\"commentCount\":5,\"publisher\":{\"@id\":\"https:\/\/www.inesem.es\/revistadigital\/informatica-y-tics\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.inesem.es\/revistadigital\/informatica-y-tics\/opencv#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.inesem.es\/revistadigital\/informatica-y-tics\/files\/2020\/02\/portada.jpg\",\"articleSection\":[\"An\u00e1lisis de Datos\"],\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.inesem.es\/revistadigital\/informatica-y-tics\/opencv#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.inesem.es\/revistadigital\/informatica-y-tics\/opencv\",\"url\":\"https:\/\/www.inesem.es\/revistadigital\/informatica-y-tics\/opencv\",\"name\":\"OpenCV, Instalaci\u00f3n en Python y ejemplos b\u00e1sicos\",\"isPartOf\":{\"@id\":\"https:\/\/www.inesem.es\/revistadigital\/informatica-y-tics\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.inesem.es\/revistadigital\/informatica-y-tics\/opencv#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.inesem.es\/revistadigital\/informatica-y-tics\/opencv#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.inesem.es\/revistadigital\/informatica-y-tics\/files\/2020\/02\/portada.jpg\",\"datePublished\":\"2020-02-12T09:43:21+00:00\",\"dateModified\":\"2020-06-10T07:43:14+00:00\",\"description\":\"Si quieres descubrir qu\u00e9 es OpenCV, c\u00f3mo se instala en Python y ver una serie de ejemplos b\u00e1sicos, este art\u00edculo es el indicado.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.inesem.es\/revistadigital\/informatica-y-tics\/opencv#breadcrumb\"},\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.inesem.es\/revistadigital\/informatica-y-tics\/opencv\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\/\/www.inesem.es\/revistadigital\/informatica-y-tics\/opencv#primaryimage\",\"url\":\"https:\/\/www.inesem.es\/revistadigital\/informatica-y-tics\/files\/2020\/02\/portada.jpg\",\"contentUrl\":\"https:\/\/www.inesem.es\/revistadigital\/informatica-y-tics\/files\/2020\/02\/portada.jpg\",\"width\":1620,\"height\":1080,\"caption\":\"Opencv\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.inesem.es\/revistadigital\/informatica-y-tics\/opencv#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.inesem.es\/revistadigital\/informatica-y-tics\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"An\u00e1lisis de Datos\",\"item\":\"https:\/\/www.inesem.es\/revistadigital\/informatica-y-tics\/categorias\/analisis-de-datos\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"\u00bfQu\u00e9 es OpenCV? Instalaci\u00f3n en Python y ejemplos b\u00e1sicos\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.inesem.es\/revistadigital\/informatica-y-tics\/#website\",\"url\":\"https:\/\/www.inesem.es\/revistadigital\/informatica-y-tics\/\",\"name\":\"Canal Inform\u00e1tica y TICS\",\"description\":\"Canal de Noticias gestionado por el Departamento Docente de Inform\u00e1tica y TICS de INESEM\",\"publisher\":{\"@id\":\"https:\/\/www.inesem.es\/revistadigital\/informatica-y-tics\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.inesem.es\/revistadigital\/informatica-y-tics\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"es\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.inesem.es\/revistadigital\/informatica-y-tics\/#organization\",\"name\":\"Canal Inform\u00e1tica y TICS\",\"url\":\"https:\/\/www.inesem.es\/revistadigital\/informatica-y-tics\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\/\/www.inesem.es\/revistadigital\/informatica-y-tics\/#\/schema\/logo\/image\/\",\"url\":\"\",\"contentUrl\":\"\",\"caption\":\"Canal Inform\u00e1tica y TICS\"},\"image\":{\"@id\":\"https:\/\/www.inesem.es\/revistadigital\/informatica-y-tics\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/InesemBusinessSchool\/\",\"https:\/\/x.com\/inesem\",\"http:\/\/www.linkedin.com\/company\/2370697\",\"https:\/\/www.youtube.com\/user\/inesembusinesschool\/\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.inesem.es\/revistadigital\/informatica-y-tics\/#\/schema\/person\/ec323f7b4aed4a9f5ba04f2df32e0673\",\"name\":\"Rafael Mar\u00edn\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\/\/www.inesem.es\/revistadigital\/informatica-y-tics\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/www.inesem.es\/revistadigital\/informatica-y-tics\/files\/2023\/11\/Foto-Claustro-Educa-Open-recortada-revista-digital-96x96.jpg\",\"contentUrl\":\"https:\/\/www.inesem.es\/revistadigital\/informatica-y-tics\/files\/2023\/11\/Foto-Claustro-Educa-Open-recortada-revista-digital-96x96.jpg\",\"caption\":\"Rafael Mar\u00edn\"},\"description\":\"Ingeniero T\u00e9cnico en Inform\u00e1tica de Sistemas. Amante de las nuevas tecnolog\u00edas, la creaci\u00f3n de aplicaciones y el desarrollo web. Desarrolla sus habilidades en el Departamento de Inform\u00e1tica de INESEM.\",\"url\":\"https:\/\/www.inesem.es\/revistadigital\/informatica-y-tics\/autores\/rafael-marin\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"OpenCV, Instalaci\u00f3n en Python y ejemplos b\u00e1sicos","description":"Si quieres descubrir qu\u00e9 es OpenCV, c\u00f3mo se instala en Python y ver una serie de ejemplos b\u00e1sicos, este art\u00edculo es el indicado.","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:\/\/www.inesem.es\/revistadigital\/informatica-y-tics\/opencv","og_locale":"es_ES","og_type":"article","og_title":"OpenCV, Instalaci\u00f3n en Python y ejemplos b\u00e1sicos","og_description":"Si quieres descubrir qu\u00e9 es OpenCV, c\u00f3mo se instala en Python y ver una serie de ejemplos b\u00e1sicos, este art\u00edculo es el indicado.","og_url":"https:\/\/www.inesem.es\/revistadigital\/informatica-y-tics\/opencv","og_site_name":"Canal Inform\u00e1tica y TICS","article_publisher":"https:\/\/www.facebook.com\/InesemBusinessSchool\/","article_published_time":"2020-02-12T09:43:21+00:00","article_modified_time":"2020-06-10T07:43:14+00:00","og_image":[{"width":1620,"height":1080,"url":"https:\/\/www.inesem.es\/revistadigital\/informatica-y-tics\/files\/2020\/02\/portada.jpg","type":"image\/jpeg"}],"author":"Rafael Mar\u00edn","twitter_card":"summary_large_image","twitter_creator":"@inesem","twitter_site":"@inesem","twitter_misc":{"Escrito por":"Rafael Mar\u00edn","Tiempo de lectura":"7 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.inesem.es\/revistadigital\/informatica-y-tics\/opencv#article","isPartOf":{"@id":"https:\/\/www.inesem.es\/revistadigital\/informatica-y-tics\/opencv"},"author":{"name":"Rafael Mar\u00edn","@id":"https:\/\/www.inesem.es\/revistadigital\/informatica-y-tics\/#\/schema\/person\/ec323f7b4aed4a9f5ba04f2df32e0673"},"headline":"\u00bfQu\u00e9 es OpenCV? Instalaci\u00f3n en Python y ejemplos b\u00e1sicos","datePublished":"2020-02-12T09:43:21+00:00","dateModified":"2020-06-10T07:43:14+00:00","mainEntityOfPage":{"@id":"https:\/\/www.inesem.es\/revistadigital\/informatica-y-tics\/opencv"},"wordCount":1439,"commentCount":5,"publisher":{"@id":"https:\/\/www.inesem.es\/revistadigital\/informatica-y-tics\/#organization"},"image":{"@id":"https:\/\/www.inesem.es\/revistadigital\/informatica-y-tics\/opencv#primaryimage"},"thumbnailUrl":"https:\/\/www.inesem.es\/revistadigital\/informatica-y-tics\/files\/2020\/02\/portada.jpg","articleSection":["An\u00e1lisis de Datos"],"inLanguage":"es","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.inesem.es\/revistadigital\/informatica-y-tics\/opencv#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.inesem.es\/revistadigital\/informatica-y-tics\/opencv","url":"https:\/\/www.inesem.es\/revistadigital\/informatica-y-tics\/opencv","name":"OpenCV, Instalaci\u00f3n en Python y ejemplos b\u00e1sicos","isPartOf":{"@id":"https:\/\/www.inesem.es\/revistadigital\/informatica-y-tics\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.inesem.es\/revistadigital\/informatica-y-tics\/opencv#primaryimage"},"image":{"@id":"https:\/\/www.inesem.es\/revistadigital\/informatica-y-tics\/opencv#primaryimage"},"thumbnailUrl":"https:\/\/www.inesem.es\/revistadigital\/informatica-y-tics\/files\/2020\/02\/portada.jpg","datePublished":"2020-02-12T09:43:21+00:00","dateModified":"2020-06-10T07:43:14+00:00","description":"Si quieres descubrir qu\u00e9 es OpenCV, c\u00f3mo se instala en Python y ver una serie de ejemplos b\u00e1sicos, este art\u00edculo es el indicado.","breadcrumb":{"@id":"https:\/\/www.inesem.es\/revistadigital\/informatica-y-tics\/opencv#breadcrumb"},"inLanguage":"es","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.inesem.es\/revistadigital\/informatica-y-tics\/opencv"]}]},{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/www.inesem.es\/revistadigital\/informatica-y-tics\/opencv#primaryimage","url":"https:\/\/www.inesem.es\/revistadigital\/informatica-y-tics\/files\/2020\/02\/portada.jpg","contentUrl":"https:\/\/www.inesem.es\/revistadigital\/informatica-y-tics\/files\/2020\/02\/portada.jpg","width":1620,"height":1080,"caption":"Opencv"},{"@type":"BreadcrumbList","@id":"https:\/\/www.inesem.es\/revistadigital\/informatica-y-tics\/opencv#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.inesem.es\/revistadigital\/informatica-y-tics\/"},{"@type":"ListItem","position":2,"name":"An\u00e1lisis de Datos","item":"https:\/\/www.inesem.es\/revistadigital\/informatica-y-tics\/categorias\/analisis-de-datos"},{"@type":"ListItem","position":3,"name":"\u00bfQu\u00e9 es OpenCV? Instalaci\u00f3n en Python y ejemplos b\u00e1sicos"}]},{"@type":"WebSite","@id":"https:\/\/www.inesem.es\/revistadigital\/informatica-y-tics\/#website","url":"https:\/\/www.inesem.es\/revistadigital\/informatica-y-tics\/","name":"Canal Inform\u00e1tica y TICS","description":"Canal de Noticias gestionado por el Departamento Docente de Inform\u00e1tica y TICS de INESEM","publisher":{"@id":"https:\/\/www.inesem.es\/revistadigital\/informatica-y-tics\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.inesem.es\/revistadigital\/informatica-y-tics\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"es"},{"@type":"Organization","@id":"https:\/\/www.inesem.es\/revistadigital\/informatica-y-tics\/#organization","name":"Canal Inform\u00e1tica y TICS","url":"https:\/\/www.inesem.es\/revistadigital\/informatica-y-tics\/","logo":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/www.inesem.es\/revistadigital\/informatica-y-tics\/#\/schema\/logo\/image\/","url":"","contentUrl":"","caption":"Canal Inform\u00e1tica y TICS"},"image":{"@id":"https:\/\/www.inesem.es\/revistadigital\/informatica-y-tics\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/InesemBusinessSchool\/","https:\/\/x.com\/inesem","http:\/\/www.linkedin.com\/company\/2370697","https:\/\/www.youtube.com\/user\/inesembusinesschool\/"]},{"@type":"Person","@id":"https:\/\/www.inesem.es\/revistadigital\/informatica-y-tics\/#\/schema\/person\/ec323f7b4aed4a9f5ba04f2df32e0673","name":"Rafael Mar\u00edn","image":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/www.inesem.es\/revistadigital\/informatica-y-tics\/#\/schema\/person\/image\/","url":"https:\/\/www.inesem.es\/revistadigital\/informatica-y-tics\/files\/2023\/11\/Foto-Claustro-Educa-Open-recortada-revista-digital-96x96.jpg","contentUrl":"https:\/\/www.inesem.es\/revistadigital\/informatica-y-tics\/files\/2023\/11\/Foto-Claustro-Educa-Open-recortada-revista-digital-96x96.jpg","caption":"Rafael Mar\u00edn"},"description":"Ingeniero T\u00e9cnico en Inform\u00e1tica de Sistemas. Amante de las nuevas tecnolog\u00edas, la creaci\u00f3n de aplicaciones y el desarrollo web. Desarrolla sus habilidades en el Departamento de Inform\u00e1tica de INESEM.","url":"https:\/\/www.inesem.es\/revistadigital\/informatica-y-tics\/autores\/rafael-marin"}]}},"autor_name":{"name":"Rafael Mar\u00edn"},"featured_image":{"attachment_meta":{"width":1620,"height":1080,"file":"2020\/02\/portada.jpg","sizes":{"thumbnail":{"file":"portada-345x180.jpg","width":345,"height":180,"mime_type":"image\/jpeg","url":"https:\/\/www.inesem.es\/revistadigital\/informatica-y-tics\/files\/2020\/02\/portada-345x180.jpg"},"medium":{"file":"portada-175x117.jpg","width":175,"height":117,"mime_type":"image\/jpeg","url":"https:\/\/www.inesem.es\/revistadigital\/informatica-y-tics\/files\/2020\/02\/portada-175x117.jpg"},"medium_large":{"file":"portada-768x512.jpg","width":768,"height":512,"mime_type":"image\/jpeg","url":"https:\/\/www.inesem.es\/revistadigital\/informatica-y-tics\/files\/2020\/02\/portada-768x512.jpg"},"large":{"file":"portada-1020x680.jpg","width":1020,"height":680,"mime_type":"image\/jpeg","url":"https:\/\/www.inesem.es\/revistadigital\/informatica-y-tics\/files\/2020\/02\/portada-1020x680.jpg"},"wysija-newsletters-max":{"file":"portada-600x400.jpg","width":600,"height":400,"mime_type":"image\/jpeg","url":"https:\/\/www.inesem.es\/revistadigital\/informatica-y-tics\/files\/2020\/02\/portada-600x400.jpg"},"thumb-small":{"file":"portada-59x42.jpg","width":59,"height":42,"mime_type":"image\/jpeg","url":"https:\/\/www.inesem.es\/revistadigital\/informatica-y-tics\/files\/2020\/02\/portada-59x42.jpg"},"thumb-standard":{"file":"portada-110x110.jpg","width":110,"height":110,"mime_type":"image\/jpeg","url":"https:\/\/www.inesem.es\/revistadigital\/informatica-y-tics\/files\/2020\/02\/portada-110x110.jpg"},"thumb-medium":{"file":"portada-196x166.jpg","width":196,"height":166,"mime_type":"image\/jpeg","url":"https:\/\/www.inesem.es\/revistadigital\/informatica-y-tics\/files\/2020\/02\/portada-196x166.jpg"},"thumb-large":{"file":"portada-283x190.jpg","width":283,"height":190,"mime_type":"image\/jpeg","url":"https:\/\/www.inesem.es\/revistadigital\/informatica-y-tics\/files\/2020\/02\/portada-283x190.jpg"},"thumb-anteriores":{"file":"portada-230x163.jpg","width":230,"height":163,"mime_type":"image\/jpeg","url":"https:\/\/www.inesem.es\/revistadigital\/informatica-y-tics\/files\/2020\/02\/portada-230x163.jpg"},"thumb-inverso":{"file":"portada-369x261.jpg","width":369,"height":261,"mime_type":"image\/jpeg","url":"https:\/\/www.inesem.es\/revistadigital\/informatica-y-tics\/files\/2020\/02\/portada-369x261.jpg"},"thumb-cercano":{"file":"portada-650x200.jpg","width":650,"height":200,"mime_type":"image\/jpeg","url":"https:\/\/www.inesem.es\/revistadigital\/informatica-y-tics\/files\/2020\/02\/portada-650x200.jpg"},"thumb-slider":{"file":"portada-574x430.jpg","width":574,"height":430,"mime_type":"image\/jpeg","url":"https:\/\/www.inesem.es\/revistadigital\/informatica-y-tics\/files\/2020\/02\/portada-574x430.jpg"},"thumb-busqueda":{"file":"portada-580x375.jpg","width":580,"height":375,"mime_type":"image\/jpeg","url":"https:\/\/www.inesem.es\/revistadigital\/informatica-y-tics\/files\/2020\/02\/portada-580x375.jpg"},"thumb-formacion-continua":{"file":"portada-440x336.jpg","width":440,"height":336,"mime_type":"image\/jpeg","url":"https:\/\/www.inesem.es\/revistadigital\/informatica-y-tics\/files\/2020\/02\/portada-440x336.jpg"},"advps-thumb-one":{"file":"portada-600x220.jpg","width":600,"height":220,"mime_type":"image\/jpeg","url":"https:\/\/www.inesem.es\/revistadigital\/informatica-y-tics\/files\/2020\/02\/portada-600x220.jpg"}},"image_meta":{"aperture":"0","credit":"","camera":"","caption":"","created_timestamp":"0","copyright":"","focal_length":"0","iso":"0","shutter_speed":"0","title":"","orientation":"0"}}},"_links":{"self":[{"href":"https:\/\/www.inesem.es\/revistadigital\/informatica-y-tics\/wp-json\/wp\/v2\/posts\/3023"}],"collection":[{"href":"https:\/\/www.inesem.es\/revistadigital\/informatica-y-tics\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.inesem.es\/revistadigital\/informatica-y-tics\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.inesem.es\/revistadigital\/informatica-y-tics\/wp-json\/wp\/v2\/users\/90976"}],"replies":[{"embeddable":true,"href":"https:\/\/www.inesem.es\/revistadigital\/informatica-y-tics\/wp-json\/wp\/v2\/comments?post=3023"}],"version-history":[{"count":0,"href":"https:\/\/www.inesem.es\/revistadigital\/informatica-y-tics\/wp-json\/wp\/v2\/posts\/3023\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.inesem.es\/revistadigital\/informatica-y-tics\/wp-json\/wp\/v2\/media\/3050"}],"wp:attachment":[{"href":"https:\/\/www.inesem.es\/revistadigital\/informatica-y-tics\/wp-json\/wp\/v2\/media?parent=3023"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.inesem.es\/revistadigital\/informatica-y-tics\/wp-json\/wp\/v2\/categories?post=3023"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}