Я хочу найти «края» на картинке. Чтобы прояснить термин край, край - это любой пиксель, цвет которого изменяется больше определенного порога.
Чтобы справиться с этим, я получил несколько рекомендаций:
- Найти расстояние между всеми соседними пикселями. Найти расстояние между всеми соседними пикселями. Сначала найдите разницу для цветового канала.
- Затем объедините их, чтобы получить одно число (используйте евклидово выражение)
- Найдите пиксели, в которых расстояние превышает определенный порог. Эти пиксели должны получить определенный c цвет, чтобы сделать края видимыми.
Я не работаю с python в течение очень долгого времени, так что это довольно сложная работа для меня. Кто-нибудь может помочь? Я думал: сначала сделайте функцию, которая вычисляет расстояние между 2 пикселями. Например: def what_is_distance_between_pixels(image, pixel1, pixel2)
Затем создайте функцию, которая выполняет вышеуказанную функцию для всех пикселей. Но я не уверен, что это сработает. Примерно так (набросок):
def distance_between_all_pixels(image, threshold):
height = image.shape[0]
width = image.shape[1]
colour = image.shape[2]
for y in range(0,height):
for x in range(0,width):
for z in range(0,colour):
distance = what_is_distance_between_pixels(image, image[y,x,z], image[y+1,x,z])
if distance > threshold:
image[x,y,z] = 0
distance_2 = what_is_distance_between_pixels(image, image[y,x,z], image[y,x+1,z])
if distance_2 > threshold:
image[x,y,z] = 0
У кого-нибудь есть идеи, как с этим бороться? Надеюсь, я хорошо объяснил свой вопрос.