首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >AForge图像比较

AForge图像比较
EN

Stack Overflow用户
提问于 2014-02-06 17:45:05
回答 2查看 3.7K关注 0票数 1

在调用比较扩展方法时,尝试使用AForge.Imagingi am getting Template's size should be smaller or equal to source image's size比较两个位图。

代码语言:javascript
复制
public static Boolean Compare(this Bitmap image1, Bitmap image2, double comparisionLevel, float threshold)
        {

            return new ExhaustiveTemplateMatching(threshold)
                .ProcessImage(image1.To24bppRgbFormat(), image2.To24bppRgbFormat())[0]
                .Similarity >= comparisionLevel;
        }

        public static Bitmap To24bppRgbFormat(this Bitmap img)
        {
            return img.Clone(new Rectangle(0, 0, img.Width, img.Height), 
                System.Drawing.Imaging.PixelFormat.Format24bppRgb);
        }

我遗漏了什么?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-02-06 17:57:45

根据您所得到的错误和ExhaustiveTemplateMatching调用的文档,image2看起来比image1大。我不认为您的扩展方法中有任何错误。

总的来说,您的问题似乎与image1image2本身有关。一种可能的解决方案是添加逻辑以确定哪个图像更大,然后将其中一个作为sourceImage参数传入,另一个作为templateImage传递。

我不知道这个方法如何处理image1更高的情况,但是image2更宽.

免责声明:我从未使用过AForge;我只是从C#的总体知识和方法文档中获得了一些知识。

票数 2
EN

Stack Overflow用户

发布于 2014-07-18 11:45:31

模板图像大小(宽度和高度)必须小于要比较的图像。

首先要做的是这样的事情:

代码语言:javascript
复制
if(templateImage.Height > uploadedImage.Height || templateImage.Width > uploadedImage.Width)
    uploadedImage = ResizeImage(uploadedImage, uploadedImage.Height, templateImage.Width)

你可以找到很多ResizeImage的实现--我觉得这个很有趣(https://stackoverflow.com/a/6501997/3852812),你只需要用Math.Max代替Math.Min

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21610203

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档