У меня есть маска изображения (разность M), например: ![enter image description here](https://i.stack.imgur.com/KsVhd.png)
Для каждого отдельного белого пикселя (значение пикселя! = 0) я хочу вычислить минимальное расстояние отэтот пиксель для набора точек.Множество точек - это точки на внешнем контуре, которые будут сохранены в виде пустого массива [x_val y_val].Я думал о том, чтобы сделать это:
...
def calcMinDist(dilPoints):
...
#returns 2d array (same shape as image)
def allMinDistDil(dilMask):
dilPoints = getPoints(dilMask)
...
return arrayOfMinValues
#more code here
blkImg = np.zeros(maskImage.shape,dtype=np.uint8)
blkImg.fill(0)
img_out = np.where(differenceM,allMinDistDil(dilatedMask),blkImg)
....
Но проблема в том, чтобы вычислить минимальное расстояние от точки пикселя до набора точек (полученное из функции getPoints), мне нужнопередать точку в пикселе (индекс?), а также.Но (если я правильно понимаю) с этой функцией where, она проверяет только значения true и false в первом параметре ... Так что способ, которым я написал функцию np.where (), не будет работать.
Я рассмотрел возможность использования вложенных циклов for для этой проблемы, но я стараюсь избегать использования циклов for, поскольку у меня много изображений для обработки.
Могу ли я попросить совета по решениюэтот?Любая помощь будет принята с благодарностью!