mage analysis : 사진에 무엇이 있는지 분석

<사진 임포트>

1. 필요한 모듈들 임포트

import requests          # 사진임포트 위해 리퀘스트 모듈 임포트
from io import BytesIO   # 16진수 바이트로 재조립하여 나오게하는 모듈
from PIL import Image    # 바이츠를 이미지로 출력해주는 모듈

2. 이미지 주소 붙여넣고 이미지 url 정상인지 확인,

image_URL = 'https://img.sbs.co.kr/newimg/news/20220530/201668602_1280.jpg'
#image = Image.open(BytesIO(requests.get(image_url).content))        #아래 과정들을 이 한줄로 요약 가능하다


response = requests.get(image_URL)   # 구글에서 복사한 이미지 주소, 200 나오면 정상
response.content                     # 앞에 나온 x는 텍스트가 아닌 바이너리파일이라 16진수로 표시된다, 바이트로 재조립하여 사진으로 나오게하는 작업 필요, 이때 from io in BytesIO라는 모듈 필요
img = BytesIO(response.content)      # 16진수 바이츠로 재조립함
image = Image.open(img)              # 바이츠를 이미지로 재조림
image                                # 이미지 출력

-이 과정에서 사진이 출력이 잘되어야 한다-

3. azure에서 생성한 서비스 키와 앤드포인트(주소) , 어떤 버전의 컴퓨터비전을 사용할지, 클라우드 접속에 필요한 정보를 작성

key = '5796dccc8691492e88f92758dde9b2f2'
endpoint = 'https://labuser69computervision2.cognitiveservices.azure.com/' + 'vision/v2.0/'   #azure에서 생성한 서비스 키와 앤드포인트(주소)+어떤 서비스 버전

4. 이미지 분석 기능을 쓸 거다

 
analyze_endpoint = endpoint + 'analyze'

5. 웹을 이용한 function에 필요한 3가지 속성을 변수에 넣어 정리

header = {'Ocp-Apim-Subscription-Key': key}                      #헤더에 키값을 주겠다
params = {'visualFeatures': 'Categories,Description,Color'}       # 카테고리 나누고, 설명하고 칼라값 주라는 뜻
data = {'url':image_URL}                                                   # 이미지 url

6. 클라우드에 발사!

response = requests.post(analyze_endpoint,                       
              headers=header,
              params=params,
              json=data)

7. 이제 결과를 json 파일로 저장하고나서 출력해보면 결과가 나온다

result = response.json()
result

출력>
{'categories': [],
 'color': {'dominantColorForeground': 'Grey',
  'dominantColorBackground': 'Black',
  'dominantColors': ['Grey', 'Black', 'Brown'],
  'accentColor': '4C5D2A',
  'isBwImg': False,
  'isBWImg': False},
 'description': {'tags': ['dog',
   'mammal',
   'animal',
   'sitting',
   'small',
   'grass',
   'looking',
   'cat',
   'front',
   'standing',
   'table',
   'little',
   'brown',
   'laying',
   'sheep'],
  'captions': [{'text': 'a cat sitting next to a dog',
    'confidence': 0.70557170301425}]},
 'requestId': 'b8300a15-c44f-4820-865c-204cf30dedf9',
 'metadata': {'height': 720, 'width': 1280, 'format': 'Jpeg'}}

+ Recent posts