[딥러닝 첫걸음] OpenCV로 온라인 이미지 바로 열어버리기
이미지 받고 업로드 하는것도 귀찮은 나머지 온라인의 이미지를 링크를 통해 바로 띄워 버리고 싶어졌다.
나도 할 수 있으면 모두가 할 수 있는거다.
따라올테면 따라와 봐(요)
우리가 쓸 녀석들은
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로 이미지 출력하는 법을 알아보았다.