За визуално идентифициране и подчертаване на открити обекти в изображение с помощта на библиотеката Pillow, можем да следваме процес стъпка по стъпка. Библиотеката Pillow е мощна библиотека за изображения на Python, която предоставя широк набор от възможности за обработка на изображения. Като комбинираме възможностите на библиотеката Pillow с функционалността за откриване на обекти на Google Vision API, можем да постигнем тази задача ефективно.
Ето стъпките за визуално идентифициране и подчертаване на открити обекти в изображение с помощта на библиотеката Pillow:
1. Инсталирайте необходимите библиотеки: Започнете с инсталиране на необходимите библиотеки. Инсталирайте Pillow с помощта на командата `pip install pillow`. Освен това ще трябва да настроите API на Google Vision и да инсталирате клиентската библиотека на Google Cloud за Python.
2. Удостоверете се с Google Vision API: За да използвате Google Vision API, трябва да удостоверите вашето приложение. Следвайте документацията, предоставена от Google, за да получите необходимите идентификационни данни.
3. Заредете и анализирайте изображението: Използвайте библиотеката Pillow, за да заредите изображението, което искате да анализирате. Можете да използвате метода `Image.open()`, за да отворите файла с изображение. След като изображението се зареди, преобразувайте го във формат, съвместим с API на Google Vision, като JPEG или PNG.
4. Изпратете изображението до Google Vision API: Използвайте клиентската библиотека на Google Cloud за Python, за да изпратите изображението до Google Vision API за откриване на обекти. Това може да стане чрез създаване на обект на заявка с данните за изображението и извикване на съответния метод, като например `image_annotator_client.object_localization().annotate_image()`.
5. Извлечете резултатите от откриването на обект: Извлечете резултатите от откриването на обект от отговора, получен от API на Google Vision. Отговорът ще съдържа информация за откритите обекти, като техните ограничаващи полета, етикети и резултати за доверие.
6. Начертайте ограничителни полета върху изображението: Използвайте библиотеката Pillow, за да начертаете ограничителни полета около откритите обекти на изображението. Можете да използвате метода `ImageDraw.Draw()`, за да създадете чертожен обект, и след това да използвате метода `draw.rectangle()`, за да начертаете ограничителните полета.
7. Добавете етикети и резултати към изображението: За да подобрите визуализацията, можете да добавите етикети и резултати за доверие към изображението. Използвайте метода `draw.text()` от библиотеката Pillow, за да наслагвате етикетите и точките върху изображението.
8. Запазете и покажете анотираното изображение: Запазете анотираното изображение, като използвате метода `Image.save()` от библиотеката на Pillow. Можете да изберете желания формат, като JPEG или PNG. По желание покажете анотираното изображение с помощта на метода `Image.show()`.
Следвайки тези стъпки, можете визуално да идентифицирате и маркирате откритите обекти в изображение с помощта на библиотеката Pillow. Комбинацията от мощните възможности за обработка на изображения на Pillow и функционалността за откриване на обекти на Google Vision API позволява ефективен и точен анализ на изображенията.
Пример:
python from PIL import Image, ImageDraw from google.cloud import vision # Load and analyze the image image_path = 'path/to/your/image.jpg' image = Image.open(image_path) image_data = image.tobytes() # Authenticate with the Google Vision API client = vision.ImageAnnotatorClient.from_service_account_json('path/to/your/credentials.json') # Send the image to the Google Vision API for object detection response = client.object_localization(image=vision.Image(content=image_data)) objects = response.localized_object_annotations # Draw bounding boxes on the image draw = ImageDraw.Draw(image) for obj in objects: bbox = obj.bounding_poly.normalized_vertices draw.rectangle([(bbox[0].x * image.width, bbox[0].y * image.height), (bbox[2].x * image.width, bbox[2].y * image.height)], outline='red', width=3) # Add labels and scores to the image label = obj.name score = obj.score draw.text((bbox[0].x * image.width, bbox[0].y * image.height - 15), f'{label} ({score:.2f})', fill='red') # Save and display the annotated image annotated_image_path = 'path/to/save/annotated_image.jpg' image.save(annotated_image_path) image.show()
В този пример първо зареждаме и анализираме изображението с помощта на библиотеката Pillow. След това се удостоверяваме с API на Google Vision и изпращаме изображението за откриване на обект. Извличаме резултатите от откриването на обекти и използваме библиотеката Pillow, за да начертаем ограничителни полета около откритите обекти на изображението. Освен това добавяме етикети и оценки за доверие към изображението. Накрая запазваме и показваме анотираното изображение.
Други скорошни въпроси и отговори относно Разширено разбиране на изображенията:
- Кои са някои предварително дефинирани категории за разпознаване на обекти в API на Google Vision?
- Какъв е препоръчителният подход за използване на функцията за откриване на безопасно търсене в комбинация с други техники за модериране?
- Как можем да получим достъп и да покажем стойностите на вероятността за всяка категория в анотацията за безопасно търсене?
- Как можем да получим анотацията за безопасно търсене с помощта на API на Google Vision в Python?
- Кои са петте категории, включени във функцията за откриване на безопасно търсене?
- Как функцията за безопасно търсене на Google Vision API открива изрично съдържание в изображения?
- Как можем да организираме информацията за извлечения обект в табличен формат, използвайки рамката с данни на pandas?
- Как можем да извлечем всички анотации на обекти от отговора на API?
- Какви библиотеки и език за програмиране се използват за демонстриране на функционалността на API на Google Vision?
- Как Google Vision API извършва откриване на обекти и локализиране в изображения?
Вижте още въпроси и отговори в Разширено разбиране на изображения