Напиши код программы на Python с использованием библеотеки OpenCV для того чтобы определялся размер зрачка человека на фотографии и размер выводился в окне вывода кадров, а так же зрачек обводился квадратом в окне вывода кадра
import cv2
import numpy as np
Шаг 2: Загрузка изображения и предварительная обработка
Для загрузки изображения используется метод imread() из библиотеки OpenCV. После загрузки изображения, необходимо его предварительно обработать. Для этого используется метод cvtColor(), который конвертирует изображение из одного цветового пространства в другое. Например, изображение может быть в цветовом пространстве RGB, а мы можем его преобразовать в цветовое пространство Gray, для упрощения последующих действий:
img = cv2.imread('image.jpg', cv2.IMREAD_COLOR) # загрузка изображения
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) # преобразование в цветовое пространство Gray
Шаг 3: Определение размера зрачка
Для определения размера зрачка используется метод detectMultiScale() из библиотеки OpenCV, который позволяет определить масштабируемые объекты на изображении, такие как зрачки. Он делает это путем сканирования изображения с использованием различных масштабных коэффициентов. После обнаружения объекта, мы можем рассчитать его размер:
faces = cv2.CascadeClassifier('haarcascade_eye.xml') # загрузка каскада глаз
eyes = faces.detectMultiScale(gray, scaleFactor=1.3, minNeighbors=5) # обнаружение глаз
for (x, y, w, h) in eyes: # перебор всех глаз на изображении
cv2.rectangle(img, (x, y), (x + w, y + h), (0, 0, 255), 2) # наложение квадрата на зрачок
pupil = cv2.cvtColor(img[y:y+h,x:x+w], cv2.COLOR_BGR2GRAY) # выделение зрачка
circles = cv2.HoughCircles(pupil,cv2.HOUGH_GRADIENT,1,20,param1=50,param2=30,minRadius=5,maxRadius=15) # поиск окружностей на зрачке
if circles is not None: # если на зрачке найдена окружность
circles = np.uint16(np.around(circles)) # округление координат и радиуса до целых чисел
for i in circles[0,:]:
# нарисовать окружность на зрачке
cv2.circle(img,(x+i[0],y+i[1]),i[2],(0,255,0),2)
# вывести размер зрачка в консоль
print("Pupil diameter: ", i[2]*2)
Шаг 4: Отображение результата
Для отображения результата необходимо использовать метод imshow() из библиотеки OpenCV:
cv2.imshow('Image', img)
cv2.waitKey(0)
cv2.destroyAllWindows()
Полный код программы для определения размера зрачка на фотографии с помощью библиотеки OpenCV в языке программирования Python:
import cv2
import numpy as np
img = cv2.imread('image.jpg', cv2.IMREAD_COLOR)
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
faces = cv2.CascadeClassifier('haarcascade_eye.xml')
eyes = faces.detectMultiScale(gray, scaleFactor=1.3, minNeighbors=5)
for (x, y, w, h) in eyes:
cv2.rectangle(img, (x, y), (x + w, y + h), (0, 0, 255), 2)
pupil = cv2.cvtColor(img[y:y+h,x:x+w], cv2.COLOR_BGR2GRAY)
circles = cv2.HoughCircles(pupil,cv2.HOUGH_GRADIENT,1,20,param1=50,param2=30,minRadius=5,maxRadius=15)
if circles is not None:
circles = np.uint16(np.around(circles))
for i in circles[0,:]:
cv2.circle(img,(x+i[0],y+i[1]),i[2],(0,255,0),2)
print("Pupil diameter: ", i[2]*2)
cv2.imshow('Image', img)
cv2.waitKey(0)
cv2.destroyAllWindows()
Надеюсь, этот пример поможет вам определить размер зрачка на фотографии с помощью Python и библиотеки OpenCV.Нажимая «Регистрация» или «Войти через Google», вы соглашаетесь с Публичной офертой, даете Согласие на обработку персональных данных, а также подтверждаете что вам есть 18 лет
Нажимая «Регистрация» или «Войти через Google», вы соглашаетесь с Публичной офертой, даете Согласие на обработку персональных данных, а также подтверждаете что вам есть 18 лет