from skimage.measure import regionprops
import numpy as np
arr = np.zeros((10, 10))
arr[[1, 4, 9], [1, 4, 9]] = 1
arr[[4, 7, 8], [2, 4, 6]] = 2
Это создает массив, который выглядит следующим образом:
array([[ 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],
[ 0., 1., 0., 0., 0., 0., 0., 0., 0., 0.],
[ 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],
[ 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],
[ 0., 0., 2., 0., 1., 0., 0., 0., 0., 0.],
[ 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],
[ 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],
[ 0., 0., 0., 0., 2., 0., 0., 0., 0., 0.],
[ 0., 0., 0., 0., 0., 0., 2., 0., 0., 0.],
[ 0., 0., 0., 0., 0., 0., 0., 0., 0., 1.]])
list_from_regprops = regionprops(arr.astype(int))
Это создает ваш список регионов, и вы можете получить к нему доступ, проиндексировав список и извлекая значение, которое вы хотите изменить, а затем просто перезаписатьиспользуя тот же механизм
#list_from_regprops = [r1, r2, r3]
old_centroid_x, old_centroid_y = list_from_regprops[0].centroid
new_centroid_x, new_centroid_y = old_centroid_x + 4, old_centroid_y - 4#for example
list_from_regprops[0].centroid = new_centroid_x, new_centroid_y
Это должно делать то, что вам нужно, просто замените 0 на любой индекс, который вам нужно изменить.