Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/image/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 通过矩形显示图像差异_C#_Image_Image Processing_Aforge - Fatal编程技术网

C# 通过矩形显示图像差异

C# 通过矩形显示图像差异,c#,image,image-processing,aforge,C#,Image,Image Processing,Aforge,我是图像处理的新手。所以我可能在问一个noob问题 我使用的是VS2010、.NET4和Windows应用程序 我想通过矩形(或任何其他形状)显示两个图像之间的差异。 我试图在下面的链接中引用这个类 然而,第一张照片(两个耶洛矩形的罗斯)是我真正想要的,上面链接中的代码告诉你所有东西的匹配,而不是区别。实际上,我想找出差异,并围绕差异突出显示/绘制矩形 我在一个大型库中也尝试了差异和阈值差异类,但是我可以创建一个新的图像来显示差异,但是,我想围绕这些差异绘制矩形。我不知道如何得到绘制矩形的不同

我是图像处理的新手。所以我可能在问一个noob问题

我使用的是VS2010、.NET4和Windows应用程序

我想通过矩形(或任何其他形状)显示两个图像之间的差异。 我试图在下面的链接中引用这个类

然而,第一张照片(两个耶洛矩形的罗斯)是我真正想要的,上面链接中的代码告诉你所有东西的匹配,而不是区别。实际上,我想找出差异,并围绕差异突出显示/绘制矩形

我在一个大型库中也尝试了
差异
阈值差异
类,但是我可以创建一个新的图像来显示差异,但是,我想围绕这些差异绘制矩形。我不知道如何得到绘制矩形的不同点的坐标

我可以在这里使用哪些类/函数

我尝试过EyeOpen库,但它没有很多选择,除非我在这里遗漏了什么。除了C#中的org.Net之外,我可以尝试其他任何库

问候,,
Rumit

让我知道我是否正确理解了你的问题:你想比较两个图像,如果它们之间存在差异,那么在其周围画一个矩形来显示差异

如果这是您试图实现的唯一目标,那么我将不使用任何外部库,而是逐像素比较图像,然后在不匹配的区域周围绘制一个矩形

假设两幅图像大小相同,可以使用简单的循环获得不同像素的坐标:

//the images are loaded in Bitmap image1, image2;
for (int x = 0; x < image1.Width; x++)
{
    for (int y = 0; y < image1.Height; y++)
    {
        if (image1.GetPixel(x, y) != image2.GetPixel(x, y))
        {
            posX = x; posY = y; //position of the pixel that is different
        }
    }
}
//图像加载到位图image1、image2中;
对于(int x=0;x
然后使用
DrawRectangle()
posX
posY
指定的像素周围绘制一个矩形。若你们想检测所有的差异,你们可以创建一个像素坐标数组,每次你们发现一个差异的时候都要添加一个项目,然后在所有的差异周围画一个矩形

恐怕使用
GetPixel()
的速度相当慢。如果您的目标是速度,那么我建议使用
LockBits()
UnlockBits()
进行像素操作(请参阅)。

我给出了一个答案,其中突出显示了两幅图像之间的增量


在转到外部库之前,我尝试过这种方法,但在上面的方法中,很难确定绘制矩形的区域。例如,在我的原始帖子中的链接中有一幅带有两个直肠的玫瑰图片。如果我一个像素一个像素地画,很难决定在哪里画矩形。如果我遗漏了什么,请告诉我?我正在寻找一个应用程序,它将发现多个差异,并强调相同的@鲁米特帕特尔:很抱歉,我还是不明白你想要实现什么。如果是,那就是将图像与某个模板进行比较,并突出显示匹配区域,然后使用问题中发布的链接中编写的确切代码。如果是发现,那么你可以使用我的答案中的代码或者其他一些差分技术。你可能还想在一张图像中找出一些区域差异并进行比较,但我不认为这有什么用处。你到底打算如何围绕这些差异绘制矩形?考虑差值的几乎微不足道的情况,在45度处画一条线。您想要一个包含所有更改的矩形吗?或者,每一个小小的像素变化都有一个小小的矩形?