{"id":223,"date":"2021-10-23T21:56:12","date_gmt":"2021-10-23T13:56:12","guid":{"rendered":"https:\/\/yhsbj.cn\/?p=223"},"modified":"2021-10-23T21:57:56","modified_gmt":"2021-10-23T13:57:56","slug":"c%e7%94%a8emgucv%e5%ae%9e%e7%8e%b0%e8%8e%b7%e5%8f%962%e4%b8%aa%e5%9b%be%e7%9a%84%e7%9b%b8%e4%bc%bc%e5%ba%a6","status":"publish","type":"post","link":"https:\/\/yhsbj.cn\/index.php\/2021\/10\/23\/223\/","title":{"rendered":"C#\u7528EmguCV\u5b9e\u73b0\u83b7\u53d62\u4e2a\u56fe\u7684\u76f8\u4f3c\u5ea6"},"content":{"rendered":"\n<p>\u76f8\u4f3c\u5ea6\u503c\u8d8a\u63a5\u8fd1\u8d8a0\uff0c\u8868\u793a\u8d8a\u76f8\u4f3c\uff0c\u672b\u5c3e\u6709\u7a0b\u5e8f\u6548\u679c\u622a\u56fe\u3002<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"csharp\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">static void Main(string[] args)\n{\n    ImageComparator test = new ImageComparator();\n    test.setBaseImage(new Mat(@\"D:\/test22 - \u526f\u672c.jpg\"));\n    test.setInputImage(new Mat(@\"D:\/test_jiaoyan_2.jpg\"));\n\n    Console.WriteLine(test.calculateDifference());\n    Console.ReadLine();\n}\n\npublic class ImageComparator\n{\n    private Mat baseImg;\n    private Mat inputImg;\n    int nBins;\/\/\u6bcf\u4e2a\u989c\u8272\u901a\u9053\u4f7f\u7528\u7684\u7bb1\u5b50\u6570\u91cf\n    public ImageComparator()\n    {\n        nBins = 8;\/\/\u9ed8\u8ba48\u4e2a\u7bb1\u5b50\n    }\n    public void setBaseImage(Mat img)\n    {\n        baseImg = img;\n    }\n    public void setInputImage(Mat img)\n    {\n        inputImg = img;\n    }\n    \/\/\/ &lt;summary>\n    \/\/\/ \u8ba1\u7b97\u76f8\u4f3c\u5ea6\n    \/\/\/ &lt;\/summary>\n    public double calculateDifference()\n    {\n        DenseHistogram[] histogramOfBaseImage = new DenseHistogram[3];\n        DenseHistogram[] histogramOfInputImage = new DenseHistogram[3];\n        for (int i = 0; i &lt; 3; i++)\n        {\n            histogramOfBaseImage[i] = new DenseHistogram(nBins, new RangeF(0f, 255.1f));\n            histogramOfBaseImage[i].Calculate&lt;byte>(new Image&lt;Gray, byte>[] { baseImg.ToImage&lt;Bgr, byte>().Split()[i] }, false, null);\n            histogramOfInputImage[i] = new DenseHistogram(nBins, new RangeF(0f, 255.1f));\n            histogramOfInputImage[i].Calculate&lt;byte>(new Image&lt;Gray, byte>[] { inputImg.ToImage&lt;Bgr, byte>().Split()[i] }, false, null);\n        }\n        Image&lt;Bgr, float> histOfBaseImg = new Image&lt;Bgr, float>(nBins, 1);\n        Image&lt;Bgr, float> histOfInputImg = new Image&lt;Bgr, float>(nBins, 1);\n        for (int i = 0; i &lt; 3; i++)\n        {\n            for (int j = 0; j &lt; nBins; j++)\n            {\n                histOfBaseImg.Data[0, j, i] = (float)histogramOfBaseImage[i].GetBinValues()[j];\n                histOfInputImg.Data[0, j, i] = (float)histogramOfInputImage[i].GetBinValues()[j];\n            }\n        }\n        return CvInvoke.CompareHist(histOfBaseImg, histOfInputImg, HistogramCompMethod.Bhattacharyya);\n    }\n}<\/pre>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" width=\"210\" height=\"40\" src=\"https:\/\/yhsbj.cn\/wp-content\/uploads\/2021\/10\/test_jiaoyan_2.jpg\" alt=\"\" class=\"wp-image-225\"\/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" width=\"210\" height=\"50\" src=\"https:\/\/yhsbj.cn\/wp-content\/uploads\/2021\/10\/test22-\u526f\u672c.jpg\" alt=\"\" class=\"wp-image-226\"\/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" width=\"700\" height=\"307\" src=\"https:\/\/yhsbj.cn\/wp-content\/uploads\/2021\/10\/\u5c4f\u5e55\u622a\u56fe-2021-10-23-215440.png\" alt=\"\" class=\"wp-image-227\" srcset=\"https:\/\/yhsbj.cn\/wp-content\/uploads\/2021\/10\/\u5c4f\u5e55\u622a\u56fe-2021-10-23-215440.png 700w, https:\/\/yhsbj.cn\/wp-content\/uploads\/2021\/10\/\u5c4f\u5e55\u622a\u56fe-2021-10-23-215440-300x132.png 300w\" sizes=\"(max-width: 700px) 100vw, 700px\" \/><\/figure>\n","protected":false},"excerpt":{"rendered":"<p>\u76f8\u4f3c\u5ea6\u503c\u8d8a\u63a5\u8fd1\u8d8a0\uff0c\u8868\u793a\u8d8a\u76f8\u4f3c\uff0c\u672b\u5c3e\u6709\u7a0b\u5e8f\u6548\u679c\u622a\u56fe\u3002<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[8,17],"tags":[10,36],"_links":{"self":[{"href":"https:\/\/yhsbj.cn\/index.php\/wp-json\/wp\/v2\/posts\/223"}],"collection":[{"href":"https:\/\/yhsbj.cn\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/yhsbj.cn\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/yhsbj.cn\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/yhsbj.cn\/index.php\/wp-json\/wp\/v2\/comments?post=223"}],"version-history":[{"count":3,"href":"https:\/\/yhsbj.cn\/index.php\/wp-json\/wp\/v2\/posts\/223\/revisions"}],"predecessor-version":[{"id":229,"href":"https:\/\/yhsbj.cn\/index.php\/wp-json\/wp\/v2\/posts\/223\/revisions\/229"}],"wp:attachment":[{"href":"https:\/\/yhsbj.cn\/index.php\/wp-json\/wp\/v2\/media?parent=223"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/yhsbj.cn\/index.php\/wp-json\/wp\/v2\/categories?post=223"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/yhsbj.cn\/index.php\/wp-json\/wp\/v2\/tags?post=223"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}