Pillow Python 라이브러리의 "draw_vertices" 함수를 사용하여 객체 테두리를 그릴 때 이미지에 표시 텍스트를 추가하려면 단계별 프로세스를 따를 수 있습니다. 이 프로세스에는 Google Vision API에서 감지된 개체의 정점을 검색하고, 정점을 사용하여 개체 테두리를 그리고 마지막으로 이미지에 표시 텍스트를 추가하는 작업이 포함됩니다.
1. 감지된 객체의 정점을 검색합니다.
– Google Vision API를 활용하여 이미지의 개체를 감지합니다.
– API 응답에서 감지된 각 개체의 정점을 추출합니다. 정점은 개체를 둘러싸는 경계 상자의 네 모서리를 나타냅니다.
2. 정점을 사용하여 객체 테두리를 그립니다.
– Python의 Pillow 라이브러리를 사용하여 이미지를 로드합니다.
– Pillow 라이브러리에서 ImageDraw 모듈의 인스턴스를 생성합니다.
– 각 객체의 꼭지점을 반복하고 ImageDraw 모듈의 "draw.lectangle" 기능을 사용하여 직사각형을 그립니다.
– "draw.lectangle" 함수는 직사각형의 왼쪽 상단 및 오른쪽 하단 모서리의 좌표를 인수로 사용합니다.
3. 이미지에 표시 텍스트를 추가합니다.
– ImageDraw 모듈의 다른 인스턴스를 생성합니다.
– 각 객체의 정점을 반복하고 ImageDraw 모듈의 "draw.text" 기능을 사용하여 표시 텍스트를 추가합니다.
– "draw.text" 함수는 텍스트 위치의 좌표와 텍스트 문자열을 인수로 사용합니다.
– "draw.text" 함수에 추가 매개변수를 지정하여 텍스트의 글꼴, 크기, 색상 및 기타 속성을 사용자 정의할 수 있습니다.
다음은 위에서 설명한 프로세스를 보여주는 예제 코드 스니펫입니다.
python from PIL import Image, ImageDraw, ImageFont # Step 1: Retrieve the vertices of the detected objects # (Assuming you have already obtained the vertices from the Google Vision API) vertices = [ [(100, 100), (200, 100), (200, 200), (100, 200)], # Example vertices of object 1 [(300, 150), (400, 150), (400, 250), (300, 250)] # Example vertices of object 2 ] # Step 2: Draw object borders using the vertices image = Image.open("input_image.jpg") draw = ImageDraw.Draw(image) for vertex in vertices: draw.rectangle(vertex, outline="red") # Step 3: Add display text to the image font = ImageFont.truetype("arial.ttf", 12) text_draw = ImageDraw.Draw(image) for i, vertex in enumerate(vertices): text_position = vertex[0][0], vertex[0][1] - 20 text_draw.text(text_position, f"Object {i+1}", font=font, fill="red") # Save the modified image image.save("output_image.jpg")
이 예에서는 객체의 정점이 이미 Google Vision API에서 획득되었다고 가정합니다. 그런 다음 Pillow 라이브러리를 사용하여 이미지를 로드하고 꼭짓점을 사용하여 객체 테두리를 그린 다음 각 객체 위에 표시 텍스트를 추가합니다.
글꼴, 글꼴 크기, 텍스트 색상 등 특정 요구 사항에 따라 코드를 조정해야 합니다.
기타 최근 질문 및 답변 Pillow Python 라이브러리를 사용하여 개체 테두리 그리기:
- 제공된 코드에서 "draw.line" 메소드의 매개변수는 무엇이며 정점 값 사이에 선을 그리는 데 이 매개변수가 어떻게 사용됩니까?
- Python에서 객체 테두리를 그리는 데 필로우 라이브러리를 어떻게 사용할 수 있습니까?
- 제공된 코드에서 "draw_vertices" 함수의 목적은 무엇입니까?
- Google Vision API는 이미지의 모양과 개체를 이해하는 데 어떻게 도움이 되나요?