{"id":27,"date":"2017-12-17T21:01:38","date_gmt":"2017-12-17T20:01:38","guid":{"rendered":"http:\/\/pinkieduck.net\/?p=27"},"modified":"2019-02-22T22:54:23","modified_gmt":"2019-02-22T21:54:23","slug":"emgu-opencv-pour-net-a-la-rescousse","status":"publish","type":"post","link":"https:\/\/pinkieduck.net\/?p=27","title":{"rendered":"EMGU (OpenCV pour .Net) \u00e0 la rescousse"},"content":{"rendered":"<p>Lors de mon pr\u00e9c\u00e9dent billet j&rsquo;avais pr\u00e9sent\u00e9 comment utiliser les Windows Forms pour afficher une image. J&rsquo;ai depuis d\u00e9couvert l&rsquo;existence d&rsquo;EMGU, un wrapper pour OpenCV qui fournit pas mal de fonctions utilitaires dont certaines pour charger et afficher des images. La plupart des fonctions usuelles de la biblioth\u00e8que sont disponibles de fa\u00e7on directe sous le namespace CvInvoke. Ainsi pour charger une image on utilisera imread comme suit\u00a0:\n<\/p>\n<p>open Emgu.CV\n<\/p>\n<p>    let img = CvInvoke.Imread(@\u00a0\u00bbC:\\Users\\vljno\\Desktop\\Canardcomission.png\u00a0\u00bb)\n<\/p>\n<p>Et pour l&rsquo;afficher on utilisera imshow comme suit\u00a0:\n<\/p>\n<p>    CvInvoke.Imshow(\u00ab\u00a0nom de fen\u00eatre\u00a0\u00bb, img)\n<\/p>\n<p>    CvInvoke.WaitKey(0)\n<\/p>\n<p>Ce qui ne surprendra pas les personnes ayant d\u00e9j\u00e0 utilis\u00e9 OpenCV dans d&rsquo;autres langage.\n<\/p>\n<p>Pour r\u00e9cup\u00e9rer les donn\u00e9es d&rsquo;une image on utilisera le membre GetData de l&rsquo;objet Mat retourn\u00e9 par Imread qui donnera un tableau 1d de bytes de l&rsquo;image. A l&rsquo;inverse, le membre SetTo permettra de changer le contenu de l&rsquo;image.\n<\/p>\n<p>img.GetData ([||])\n<\/p>\n<p>img.SetTo someArray<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Lors de mon pr\u00e9c\u00e9dent billet j&rsquo;avais pr\u00e9sent\u00e9 comment utiliser les Windows Forms pour afficher une image. J&rsquo;ai depuis d\u00e9couvert l&rsquo;existence d&rsquo;EMGU, un wrapper pour OpenCV qui fournit pas mal de fonctions utilitaires dont certaines pour charger et afficher des images. La plupart des fonctions usuelles de la biblioth\u00e8que sont disponibles de fa\u00e7on directe sous le [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[1],"tags":[],"_links":{"self":[{"href":"https:\/\/pinkieduck.net\/index.php?rest_route=\/wp\/v2\/posts\/27"}],"collection":[{"href":"https:\/\/pinkieduck.net\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/pinkieduck.net\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/pinkieduck.net\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/pinkieduck.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=27"}],"version-history":[{"count":1,"href":"https:\/\/pinkieduck.net\/index.php?rest_route=\/wp\/v2\/posts\/27\/revisions"}],"predecessor-version":[{"id":28,"href":"https:\/\/pinkieduck.net\/index.php?rest_route=\/wp\/v2\/posts\/27\/revisions\/28"}],"wp:attachment":[{"href":"https:\/\/pinkieduck.net\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=27"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/pinkieduck.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=27"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/pinkieduck.net\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=27"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}