Отображать только ограничивающую область и пренебрегать другой частью - PullRequest
0 голосов
/ 29 апреля 2020

У меня есть этот код haarcascade, который определяет лицо и рисует ограничивающий прямоугольник вокруг него. Я хочу отобразить только ограничивающую область рамки в исходном изображении в ее исходном месте и затемнить всю остальную часть, как мы делаем это при обнаружении цвета из opencv. Есть ли способ сделать это?

cascPath = "haarcascade_frontalface_default.xml"
image = cv2.imread(imagePath)

faceCascade = cv2.CascadeClassifier(cascPath)


gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
=
faces = faceCascade.detectMultiScale(
    gray,
    scaleFactor=1.1,
    minNeighbors=5,
    minSize=(30, 30),
    flags = cv2.CASCADE_SCALE_IMAGE
)

print("Found {0} faces!".format(len(faces)))

for ((x, y, w, h),i) in zip(faces,range(len(faces))):
    a=cv2.rectangle(image, (x, y), (x+w, y+h), 2)
    roi_color=image[y:y+h, x:x+w]

1 Ответ

0 голосов
/ 29 апреля 2020

Я бы попытался обрезать ROI, а затем поместить его в img, который является черным прямоугольником. В Подушке это очень легко сделать.

, поскольку у меня нет изображений лиц, сложно воспроизвести ваш код. Я буду использовать какое-то случайное изображение, но оно должно выглядеть примерно так:

Я поставил синий цвет только для того, чтобы выделить фон, но это просто вопрос, чтобы изменить его на любой цвет, который вы хотите

from PIL import Image
img = Image.open('watch.jpeg', 'r')
img_w, img_h = img.size


left = img_w/8
top = img_h/8
right = 3 * img_w/8
bottom = 3 * img_h/8
cropped_img = img.crop((left, top, right, bottom))
cropped_img.save("cropped.png")
background = Image.new('RGB', (1440, 900), (0, 0, 255))
bg_w, bg_h = background.size
offset = ((bg_w - img_w) // 2, (bg_h - img_h) // 2)
background.paste(cropped_img, offset)
background.save('out.png')

входное изображение :

enter image description here

выходное изображение : enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...