2016-03-03 6 views
1

Привет, у меня есть черный фон и есть белое пятно. У меня есть все координаты белых пикселей.Найти среднюю координату из координатного кортежа с python

points = np.where(image==255) 

«точки печати» дали мне этот вывод, я вижу, есть два массива в списке кортежей:

(array([119, 119, 119, 119, 120, 120, 120, 120, 120, 120, 120, 120, 120, 
    120, 120, 120, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 
    121, 121, 121, 121, 121, 121, 122, 122, 122, 122, 122, 122, 122, 
    122, 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, 
    123, 123, 123, 123, 123, 123, 123, 123, 123, 123, 123, 123, 123, 
    123, 123, 123, 123, 123, 123, 123, 123, 123, 124, 124, 124, 124, 
    124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 
    124, 124, 124, 124, 124, 124, 124, 125, 125, 125, 125, 125, 125, 
    125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 
    125, 125, 125, 125, 125, 125, 125, 126, 126, 126, 126, 126, 126, 
    126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 
    126, 126, 126, 126, 126, 126, 126, 126, 126, 127, 127, 127, 127, 
    127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 
    127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 
    128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 
    128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 
    128, 128, 128, 128, 129, 129, 129, 129, 129, 129, 129, 129, 129, 
    129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 
    129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 130, 130, 130, 
    130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 
    130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 
    130, 130, 130, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 
    131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 
    131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 132, 132, 
    132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 
    132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 
    132, 132, 132, 132, 132, 132, 133, 133, 133, 133, 133, 133, 133, 
    133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 
    133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 
    133, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 
    134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 
    134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 135, 135, 135, 
    135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 
    135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 
    135, 135, 135, 135, 135, 135, 136, 136, 136, 136, 136, 136, 136, 
    136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 
    136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 
    136, 136, 136, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 
    137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 
    137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 
    138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 
    138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 
    138, 138, 138, 138, 138, 138, 138, 138, 138, 139, 139, 139, 139, 
    139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 
    139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 
    139, 139, 139, 139, 139, 140, 140, 140, 140, 140, 140, 140, 140, 
    140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 
    140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 
    141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 
    141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 
    141, 141, 141, 141, 141, 141, 141, 141, 142, 142, 142, 142, 142, 
    142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 
    142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 
    142, 142, 142, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 
    143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 
    143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 144, 144, 144, 
    144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 
    144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 
    144, 144, 144, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 
    145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 
    145, 145, 145, 145, 145, 145, 145, 145, 146, 146, 146, 146, 146, 
    146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 
    146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 147, 
    147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 
    147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 
    147, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 
    148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 
    148, 148, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 
    149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 
    149, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 
    150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 151, 151, 
    151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 
    151, 151, 151, 151, 151, 152, 152, 152, 152, 152, 152, 152, 152, 
    152, 152, 152, 152, 152, 152, 152, 152, 152, 153, 153, 153, 153, 
    153, 153, 153, 153, 153, 153, 153, 153, 153, 154, 154, 154, 154, 154]), array([77, 78, 79, 80, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 71, 
    72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 69, 70, 
    71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 
    88, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 
    84, 85, 86, 87, 88, 89, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 
    78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 66, 67, 68, 69, 
    70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 
    87, 88, 89, 90, 91, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 
    77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 64, 
    65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 
    82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 64, 65, 66, 67, 68, 
    69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 
    86, 87, 88, 89, 90, 91, 92, 93, 63, 64, 65, 66, 67, 68, 69, 70, 71, 
    72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 
    89, 90, 91, 92, 93, 94, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 
    74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 
    91, 92, 93, 94, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 
    75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 
    92, 93, 94, 95, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 
    75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 
    92, 93, 94, 95, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 
    75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 
    92, 93, 94, 95, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 
    74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 
    91, 92, 93, 94, 95, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 
    73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 
    90, 91, 92, 93, 94, 95, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 
    72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 
    89, 90, 91, 92, 93, 94, 95, 96, 61, 62, 63, 64, 65, 66, 67, 68, 69, 
    70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 
    87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 61, 62, 63, 64, 65, 66, 67, 
    68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 
    85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 61, 62, 63, 64, 65, 66, 
    67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 
    84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 62, 63, 64, 65, 66, 
    67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 
    84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 62, 63, 64, 65, 66, 
    67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 
    84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 62, 63, 64, 65, 66, 
    67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 
    84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 62, 63, 64, 65, 66, 
    67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 
    84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 63, 64, 65, 66, 67, 68, 
    69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 
    86, 87, 88, 89, 90, 91, 92, 93, 94, 63, 64, 65, 66, 67, 68, 69, 70, 
    71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 
    88, 89, 90, 91, 92, 93, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 
    75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 
    92, 93, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 
    80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 65, 66, 67, 68, 
    69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 
    86, 87, 88, 89, 90, 91, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 
    77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 67, 68, 69, 
    70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 
    87, 88, 89, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 
    83, 84, 85, 86, 87, 88, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 
    81, 82, 83, 84, 85, 86, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 
    83, 84, 76, 77, 78, 79, 80])) 

Я хочу найти среднее координат. Похож (x, y).

Как я могу это сделать?

+0

Average ... с тем, что показатель? – Lol4t0

+0

Средняя координата - это координата отдельных средних значений x и y, поэтому '[np.average (points [0]), np.average (points [1])]. – roadrunner66

ответ

0

np.where возвращает кортеж, что это изоморфно 2, N массив, вы хотите, в среднем, вычисленный на N белых точек, то есть на второй оси, что, считая от 0, является axis=1 --- в конечном счете ваш вычисление только один лайнер

np.average(np.where(image==255), axis=1) 
+0

Я объединил его с функцией zip. – Murat

0

Вы уже можете использовать встроенные функции python для вычисления суммы каждой части кортежа. Не забудьте проверить len (points [n])> 0, чтобы избежать деления на нулевое исключение.

myAvgPoint = (sum(points[0])/len(points[0]),sum(points[1])/len(points[1])) 
+0

Ty это сработало. 98, 98 мой средний ^^ – Murat

+0

Его не невозможно :) – Murat

0

np.average (np.where (изображение == 255), ось = 1)

Это истинное решение.

Мой результат: [+136,6045082 +78,33913934]

 Смежные вопросы

  • Нет связанных вопросов^_^