Помогите с заданием по Python
Написать программу для решения следующих задач:
Используя библиотеку OpenCV подсчет черных точек на белой поверхности изображения, которое выберет пользователь, если изображение цветное, то предварительно преобразовать его в чёрно-белое.
Точки выберите сами
import cv2
import numpy as np
def count_black_dots(image):
"""
Подсчитывает количество черных точек на белом фоне.
Args:
image: Путь к изображению или объект NumPy.
Returns:
Количество черных точек.
"""
# Преобразуем изображение в оттенки серого, если оно цветное
if len(image.shape) == 3:
image = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
# Определяем порог для binarization
thresh = cv2.threshold(image, 0, 255, cv2.THRESH_BINARY_INV | cv2.THRESH_OTSU)[1]
# Находим контуры
contours, _ = cv2.findContours(thresh, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)
# Подсчитываем количество контуров
return len(contours)
# Выбираем изображение
image_path = input("Введите путь к изображению: ")
# Читаем изображение
image = cv2.imread(image_path)
# Подсчитываем количество черных точек
num_dots = count_black_dots(image)
# Выводим результат
print(f"Количество черных точек: {num_dots}")