개발 이야기/머신러닝, 딥러닝

[딥러닝 첫걸음] OpenCV로 온라인 이미지 바로 열어버리기

AI 동키 2021. 3. 5. 18:11
반응형

이미지 받고 업로드 하는것도 귀찮은 나머지 온라인의 이미지를 링크를 통해 바로 띄워 버리고 싶어졌다.

나도 할 수 있으면 모두가 할 수 있는거다.

따라올테면 따라와 봐(요)

 

우리가 쓸 녀석들은

1. 웹 url을 다룰 수 있게 해주는 urllib

2. 배열을 다룰 수 있게 해주는 numpy 

3. 이미지를 다룰 수 있게 해주는 cv2 가 되시겠다.

4. 그리고 Colab에서 cv2로 이미지를 빠르게 보여주기 위한 cv2_imshow도 불러준다. 
(설명이 필요하다면 아래의 이전 글의 설명을 참고하시라.)

[딥러닝 첫걸음] 생에 첫 컴퓨터 비전, OpenCV야 안녕? OpenCV로 이미지 열어버리기

 

목표!

내가 출력하고픈 이미지는 바로 이것.

귀여운 호랑이 일러스트다.

이걸 다운로드 받지 않고, 웹상의 주소를 복사해서 바로 갖고와버릴꺼다.

 

마우스 우클릭 후 이미지 주소 복사를 누르면 주소를 가질 수 있다.

bananabearbooks.com/wp-content/uploads/2018/04/tiger-illustration-bananabeabooks.jpg

 

코드

간단히 아래 코드를 따라해보자.

#온라인 이미지를 바로 볼 수 있는 코드를 짜보자

import cv2
from google.colab.patches import cv2_imshow
import numpy as np
import urllib.request

def url_to_image(url):
  resp = urllib.request.urlopen(url)
  image = np.asarray(bytearray(resp.read()), dtype='uint8')
  image = cv2.imdecode(image, cv2.IMREAD_COLOR)

  return image

tiger_image = url_to_image('https://bananabearbooks.com/wp-content/uploads/2018/04/tiger-illustration-bananabeabooks.jpg')

cv2_imshow(tiger_image)

 

 

결과는 

 

 

 

뾰로롱 - *

 

 

잘 나왔다.

 

코드 분석

#온라인 이미지를 바로 볼 수 있는 코드를 짜보자

import cv2
from google.colab.patches import cv2_imshow
import numpy as np
import urllib.request

def url_to_image(url):
  resp = urllib.request.urlopen(url)
  image = np.asarray(bytearray(resp.read()), dtype='uint8')
  image = cv2.imdecode(image, cv2.IMREAD_COLOR)

  return image

tiger_image = url_to_image('https://bananabearbooks.com/wp-content/uploads/2018/04/tiger-illustration-bananabeabooks.jpg')

cv2_imshow(tiger_image)

 

1. url_to_image라는 url에서 이미지를 가져오는 함수를 짜주었다.

2. urllib의 urlopen으로 주소를 열어주고

3. numpy에서 이미지를 배열로 읽어버린다.

4. 이걸 cv2에서 이미지로 읽어버린걸 image에 저장하고 

5. image를 리턴해준다.

6. 이 함수를 링크를 넣어서 실행 해버리는 거다.

마지막으로, cv2_imshow를 해버린다.

 

 


웹 url로 이미지 출력하는 법을 알아보았다.

 

반응형