小编Dav*_*eep的帖子

比较图像并标记差异 c#

我目前正在做一个项目,在该项目中我需要编写软件来比较由相同区域组成的两个图像并在差异周围绘制一个框。我在几个小时内用 c# .net 编写了该程序,但很快意识到运行起来非常昂贵。这是我实现它的步骤。

  1. 创建了一个存储每个像素的 x、y 坐标的 Pixel 类和一个存储像素列表以及宽度、高度、x 和 y 属性的 PixelRectangle 类。

  2. 循环遍历每个图像的每个像素,比较每个对应像素的颜色。如果颜色不同,则我会使用该像素的 x,y 坐标创建一个新的像素对象,并将其添加到一个 pixelDifference 列表中。

  3. 接下来,我编写了一个方法,该方法递归地检查 pixelDifference 列表中的每个像素,以创建仅包含彼此直接相邻的像素的 PixelRectangle 对象。(很确定这个坏男孩造成了大部分破坏,因为它给了我一个堆栈溢出错误。)

  4. 然后,我根据存储在 PixelRectangle 对象列表中的像素计算出矩形的 x、y 坐标和尺寸,并在原始图像上绘制一个矩形以显示差异所在。

我的问题是:我是否以正确的方式解决这个问题?四叉树对这个项目有任何价值吗?如果您能给我提供有关通常如何实现此类目标的基本步骤,我将不胜感激。提前致谢。

  • 戴夫。

.net c# comparison image pixel

6
推荐指数
1
解决办法
1563
查看次数

标签 统计

.net ×1

c# ×1

comparison ×1

image ×1

pixel ×1