Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.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
Image processing 如何比较两种波数据?_Image Processing_Compare_Wave - Fatal编程技术网

Image processing 如何比较两种波数据?

Image processing 如何比较两种波数据?,image-processing,compare,wave,Image Processing,Compare,Wave,我从图像中获得了测量数据。我指的是档案扫描数据。 (沿一条线拍摄的图像强度值) 我想要的是从另一个图像的线条中获取数据,并将它们进行比较。 我想知道他们是否相似。 例如,我得到: int data1[N]; int data2[N]; 我想比较一下。如果它们不相似,我想知道数据中最长的部分,它们彼此相似。例如,如果我们在从0到N-1的索引中查看数据1和数据2,可能会出现数据1和数据2不相似的情况, 但可能是在指数100。。。N-56它们几乎是一样的。 通过相似性,我的意思是:如果我们以波的形式

我从图像中获得了测量数据。我指的是档案扫描数据。 (沿一条线拍摄的图像强度值) 我想要的是从另一个图像的线条中获取数据,并将它们进行比较。 我想知道他们是否相似。 例如,我得到:

int data1[N];
int data2[N];
我想比较一下。如果它们不相似,我想知道数据中最长的部分,它们彼此相似。例如,如果我们在从0到N-1的索引中查看数据1和数据2,可能会出现数据1和数据2不相似的情况, 但可能是在指数100。。。N-56它们几乎是一样的。 通过相似性,我的意思是:如果我们以波的形式表示数据1和数据2,
那么,相似性意味着它们的行为几乎相同,但有时可能略有不同。我的意思是波浪的形式几乎是相似的

很明显,确切的实现将比我下面描述的更复杂,但也许它将提供一个起点:

由于您讨论的是图像强度,因此可能适合先对两组原始强度数据进行规格化。(这样,您应该能够识别数据1始终是数据2值的三分之二的情况。)我可能会首先将(例如)100的值指定给源图像的最高强度部分,将0指定给最低强度-调整所有其他值以适应该比例

规范化数据后,下一步可能与使用一些简单比较(例如
Abs(data1[n]-data2[n])
)迭代规范化数组一样简单。每次比较通过时,增加“匹配长度”。如果匹配长度为零,则可能还需要设置“开始索引”变量。当比较失败时,更新“最佳匹配”信息,然后将“长度”计数器重置为零


我建议可以很容易地交换比较函数。我不确定,但是如果你试图进行某种类型的图像匹配,如果你必须使用更复杂的比较机制,我不会感到惊讶(例如,如果基本图像是相同的,但其中一幅图像经过后处理,使一侧比原始图像更亮,那么你可能需要阈值“漂移”).

很明显,确切的实现将比我下面描述的更复杂,但也许它将提供一个起点:

由于您讨论的是图像强度,因此可能适合先对两组原始强度数据进行规格化。(这样,您应该能够识别数据1始终是数据2值的三分之二的情况。)我可能会首先将(例如)100的值指定给源图像的最高强度部分,将0指定给最低强度-调整所有其他值以适应该比例

规范化数据后,下一步可能与使用一些简单比较(例如
Abs(data1[n]-data2[n])
)迭代规范化数组一样简单。每次比较通过时,增加“匹配长度”。如果匹配长度为零,则可能还需要设置“开始索引”变量。当比较失败时,更新“最佳匹配”信息,然后将“长度”计数器重置为零


我建议可以很容易地交换比较函数。我不确定,但是如果你试图进行某种类型的图像匹配,如果你必须使用更复杂的比较机制,我不会感到惊讶(例如,如果基本图像是相同的,但其中一幅图像经过后处理,使一侧比原始图像更亮,那么你可能需要阈值“漂移”).

我按照你说的做了,但问题是,不同图像的阈值不同。甚至可能在不同的扫描线上有所不同。不能设置为唯一值。啊!我误解了您最初的问题,认为您只对扫描线的子集感兴趣(例如,您试图通过仅在每个扫描线上运行比较来更快地比较图像(例如)第10行和/或第10列。如果您试图比较整个图像,则需要对两个图像进行规格化。阈值不能设置为简单值并不奇怪-正如我在上一段中提到的,根据您的需要,您可以(而且显然可以)设置阈值需要更复杂的东西。我建议的简单阈值的主要问题是,只有当您尝试比较的所有图像都具有类似的动态范围时,它才会真正起作用。如果不是这样,但您仍然希望使用简单阈值,则可能需要根据动态范围初始化阈值其中一幅图像(例如,3%的[最大强度-最小强度])顺便说一句……如果图像2部分旋转或大小不同,我描述的机制将无法正常工作。如果是这种情况,您可能需要某种基于特征的比较。正如您所说,我做了,但问题是,不同图像的阈值不同。甚至可能在不同的扫描线不同。它无法e设置为唯一值。啊!我误解了您最初的问题,认为您只对扫描线的子集感兴趣(例如,您试图通过仅在每个扫描线上运行比较来更快地比较图像(例如)第10行和/或第10列。如果您试图比较整个图像,则需要对两个图像进行规格化。阈值不能设置为简单值并不奇怪-正如我在上一段中提到的,根据您的需要,您可以(而且显然可以)设置阈值需要更复杂的东西。我建议的简单阈值的主要问题是,只有当您尝试比较的所有图像都具有相似的动态范围时,它才会真正起作用。如果不是这样,但您仍然希望使用简单阈值,则可能需要初始化阈值