Python нужно найти точки максимума на картинке

введите сюда описание изображения[![введите сюда описание изображения][2]][2]

У меня есть картинка и нужно на этой картинке найти точки максимума. Картинка чёрно-белая, пробегаемся по всем пикселям картинки и пушим в массив только пиксели чёрного цвета, использовал библиотеку pillow. Как найти точки максимума? Наведите в нужное руслом меня, какие библиотеки использовать и т.д. Нашёл все пиксели чёрного цвета(рис. 2) Ну и нашёл максимальную точку максимума(рис. 3)


from PIL import Image
from PIL import ImageDraw
import matplotlib.pyplot as plt
import requests

im = Image.open(requests.get('https://i1.wp.com/www.fotwaudio.com/wp-content/uploads/2016/07/noun_538697.jpg', stream=True).raw)

# im = Image.open("sin.jpg")
im = im.convert('RGB')

color_black = (0, 0, 0)
pixels_color_Black_array = []

for x in range(im.size[0]):
    for y in range(im.size[1]):
        if im.getpixel((x, y)) == color_black:
            pixels_color_Black_array.append({'x': x, 'y': y})

pixels_color_Black_array
# print(pixels_color_Black_array)

max_point = pixels_color_Black_array[0]

for pixel in pixels_color_Black_array:
    if pixel['y'] < max_point['y']:
        max_point = pixel

print(max_point)


Ответы (1 шт):

Автор решения: CrazyElf

Ну на той картинке, которая у вас по ссылке скачивается, нет осевой линии, поэтому максимумы можно определять просто по факту наличия чёрного цвета. И чтобы было красивее я ищу пока количество чёрных пикселов не перестаёт расти и потом закрашиваю в красный что нашёл. Вернее, я ищу даже не чёрные, а пикселы темнее средне-серого цвета:

max_y = []
max_val = 0
for y in range(im.size[0]):
    s = sum(sum(im.getpixel((x, y))) < 256 * 1.5 for x in range(im.size[1]))
    if s > 0:
        if s > max_val:
            max_y.append(y)
            max_val = s
        else:
            break

for y in max_y:
    for x in range(im.size[1]):
        if sum(im.getpixel((x, y))) < 256 * 1.5:
            im.putpixel((x, y), (255, 0, 0))

Что получилось:

введите сюда описание изображения

→ Ссылка