Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/9.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
Computer vision 如何计算一行像素中最亮点的质心?_Computer Vision_Pixels - Fatal编程技术网

Computer vision 如何计算一行像素中最亮点的质心?

Computer vision 如何计算一行像素中最亮点的质心?,computer-vision,pixels,Computer Vision,Pixels,我希望能够计算一行像素中的“平均最亮点”。这是一个基本的3D扫描仪 对于测试,我只需在像素之间进行步进,如果当前像素比之前的像素更亮,则该行的最亮点将设置为当前像素。这当然会在整个图像中产生非常不稳定的结果 如果有意义的话,我想得到“平均亮度中心” 这是一件很普通的事情,我只是缺少适合谷歌搜索的词。计算偏移量的强度加权平均值 根据示例的强度(猜测)和偏移量: 0 0 0 0 1 3 2 3 1 0 0 0 0 0 1 2 3 4 5 6 7 8 9 1

我希望能够计算一行像素中的“平均最亮点”。这是一个基本的3D扫描仪

对于测试,我只需在像素之间进行步进,如果当前像素比之前的像素更亮,则该行的最亮点将设置为当前像素。这当然会在整个图像中产生非常不稳定的结果

如果有意义的话,我想得到“平均亮度中心”


这是一件很普通的事情,我只是缺少适合谷歌搜索的词。

计算偏移量的强度加权平均值

根据示例的强度(猜测)和偏移量:

0  0  0  0  1  3  2  3  1  0  0  0  0  0
1  2  3  4  5  6  7  8  9 10 11 12 13 14
这将为您提供
(5+3*6+2*7+3*8+9)/(1+3+2+3+1)=7

您要查找的图像将使用过滤器进行“卷积”。例如,您可以使用中值滤波器(借用维基百科的示例)

在这里,窗口大小是3,因为一次看3个像素,并用中间值替换窗口周围的像素。一个3的窗口意味着,我们查看当前正在评估的像素之前和之后的第一个像素,5意味着之前和之后的两个像素,以此类推

对于a,除了用所有值的平均值替换窗口周围的像素外,您可以执行相同的操作,即

x = [2 80 6 3]
y[1] = Mean[2 2 80] = 28
y[2] = Mean[2 80 6] = 29.33
y[3] = Mean[80 6 3] = 29.667
y[4] = Mean[6 3 3] = 4
so
y = [28 29.33 29.667 4]
所以对于你的问题
y[3]
是“平均最亮点”

请注意如何处理
y[1]
(前面没有像素)和
y[4]
(后面没有像素)-此示例“复制”边界附近的像素。因此,我们通常使用复制的或恒定的边界“填充”图像,卷积图像,然后删除这些边界


这是一个标准操作,您可以在许多计算包中找到。

您的问题就像查找最长序列问题一样。一旦你能够确定一个序列(起点和长度),剩下的就是找到中间值,它是中心元素。 为了找到序列,必须给出亮和暗的定义,或者是相对->先前的值,或者是先前的两个值。绝对值:一个固定的阈值

x = [2 80 6 3]
y[1] = Mean[2 2 80] = 28
y[2] = Mean[2 80 6] = 29.33
y[3] = Mean[80 6 3] = 29.667
y[4] = Mean[6 3 3] = 4
so
y = [28 29.33 29.667 4]