Вырезайте лица по порядку, а не хаотичноPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Вырезайте лица по порядку, а не хаотично

Сообщение Anonymous »

Я создал код Python, который распознает и обрезает лица. Но проблема в том, что лица обрезаются случайным образом, а не в том порядке, как в исходном изображении, содержащем все лица.
Что требуется, пожалуйста: код обрезает лица по порядку сверху вниз до тех пор, пока он достигает последнего лица.
Поместите код в папку с именем (Входные изображения), содержащую изображение, содержащее собранные лица.
И создайте папку с именем Выходные изображения, в которой будут храниться обрезанные лица.
С помощью XML-файла распознавания лиц с текстом haarcascade_frontalface_default.xml
Код:< /p>

Код: Выделить всё

import os
import cv2
import numpy as np
import os, os.path
# Load the cascade classifier
#download this here https://raw.githubusercontent.com/opencv/opencv/4.x/data/haarcascades/haarcascade_frontalface_default.xml just go there and ctrl + s
face_cascade = cv2.CascadeClassifier("haarcascade_frontalface_default.xml")

#rename a file
#for dirname in os.listdir("."):
#    if os.path.isdir(dirname):
#        for i, filename in enumerate(os.listdir(dirname)):
#            os.rename(dirname + "/" + filename, dirname + "/" + str(i) + ".jpg")

# Read the input image
img = cv2.imread("Input Images/image.jpg")
#let's double the size of our image
img_double=cv2.resize(img,None,fx=1,fy=1,interpolation=cv2.INTER_CUBIC)
# let's do the resizing by exact dimensions
image_resize=cv2.resize(img,(600,700),interpolation=cv2.INTER_AREA)

# Convert into grayscale
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)

# Detect faces
faces = face_cascade.detectMultiScale( gray,
scaleFactor=1.1,
minNeighbors=5,
minSize=(150, 150), )

# loop over all detected faces
if len(faces) > 0:
for i, (x,y,w,h) in enumerate(faces):

#face = img[y:y+h, x:x+w]
face = img[y-65:y+h+40,x-40:x+w+55]

# cv2.imshow(f"Cropped Face {i}", face)

cv2.imwrite("Output Images/" f'0{i}.jpg', face)
print(f"0{i}.jpg is saved")

# concatenate image Vertically
#Verti = np.concatenate((img, img), axis=0)

# Number of all detected faces
print("[INFO] Found {0} Faces.".format(len(faces)))

# display the image with detected faces
cv2.imshow('scaling_exact',image_resize)
cv2.waitKey(0)
cv2.destroyAllWindows()
Исходное изображение
иллюстративный пример
Что требуется, пожалуйста: чтобы код обрезал лица по порядку сверху вниз пока не достигнет последней грани.
пример
[Исходное изображение]
(https://i.sstatic.net/mdTMAMpD.jpg)

Подробнее здесь: https://stackoverflow.com/questions/789 ... t-randomly
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Как заказать по нескольким столбцам в Spring Data JPA запрос с расчетом по порядку по порядку?
    Anonymous » » в форуме JAVA
    0 Ответы
    6 Просмотры
    Последнее сообщение Anonymous
  • Частота цифр С++ ведет себя хаотично [закрыто]
    Гость » » в форуме C++
    0 Ответы
    38 Просмотры
    Последнее сообщение Гость
  • Карусель ведет себя хаотично на сенсорном устройстве (мобильном)
    Гость » » в форуме Jquery
    0 Ответы
    18 Просмотры
    Последнее сообщение Гость
  • Карусель ведет себя хаотично на сенсорном устройстве (мобильном)
    Гость » » в форуме CSS
    0 Ответы
    13 Просмотры
    Последнее сообщение Гость
  • Вырезайте стены и двери в Roomplan & SceneKit.
    Anonymous » » в форуме IOS
    0 Ответы
    20 Просмотры
    Последнее сообщение Anonymous

Вернуться в «Python»