728x90

링크로 이미지 다운로드

1. pil로 이미지 다운로드

2. cv2로 이미지 다운로드

3. pil로 이미지 다운로드 후 cv2로 변환

4. cv2로 이미지 다운로드 후 pil로 변환

1. PIL Image 활용

from PIL import Image
from urllib.request import urlopen

# image url
url = "https://post-phinf.pstatic.net/MjAyMjA4MDVfNzUg/MDAxNjU5NjYwOTI1Njcx.8YnKl-YZKrsjoU5QsMwao4yvQEV0dUfQ5BrWRAKvhqAg.i4sgcQ_KGnfyAcN3TaMx4df-P1iOo8vGOgWgTk0nbYog.JPEG/202208001017_800.jpg?type=w1200"

# open url
image_path = urlopen(url).read()

# get image instance
image = Image.open(BytesIO(image_path))

# display image to GUI
image.show()

# save image as jpg(확장자는 자유롭게 선택 가능)
image.save('image_name.jpg',"JPEG")

2. cv2 활용

from urllib.request import urlopen
import cv2
from google.colab.patches import cv2_imshow # to use cv2.imshow in Colab
import numpy as np

# image url
url = "<https://post-phinf.pstatic.net/MjAyMjA4MDVfNzUg/MDAxNjU5NjYwOTI1Njcx.8YnKl-YZKrsjoU5QsMwao4yvQEV0dUfQ5BrWRAKvhqAg.i4sgcQ_KGnfyAcN3TaMx4df-P1iOo8vGOgWgTk0nbYog.JPEG/202208001017_800.jpg?type=w1200>"

# open url
image_path = urlopen(url).read()

# transform image_path : bytearray to numpyarray
image = np.asarray(bytearray(image_path), dtype='uint8')
image = cv2.imdecode(image, cv2.IMREAD_COLOR)

# display image to GUI
cv2.imshow("image_name", image)
# cv2_imshow(image) # display image to Colab GUI

# save image
cv2.imwrite("image_name.jpg", image)

PIL과 cv2 간 변환

3. PIL → cv2

import cv2
import numpy as np
from PIL import Image
from google.colab.patches import cv2_imshow # to use cv2.imshow in Colab

# open image using PIL
pil_image=Image.open("image.jpg")

# use numpy to convert the pil_image into a numpy array
numpy_image=np.array(pil_image)

# convert to a openCV2 image and convert from RGB to BGR format
opencv_image=cv2.cvtColor(numpy_image, cv2.COLOR_RGB2BGR)

# display image to GUI
cv2.imshow("PIL2OpenCV",opencv_image)
# cv2_imshow(image) # display image to Colab GUI

# save image as "image_name.jpg"
cv2.imwrite("image_name.jpg", image)

4. cv2 → PIL

import cv2
from PIL import Image

#open image using openCV2
opencv_image=cv2.imread("image.jpg")

# convert from BGR to RGB
color_coverted = cv2.cvtColor(opencv_image, cv2.COLOR_BGR2RGB)

# convert from openCV2 to PIL
pil_image=Image.fromarray(color_coverted)

# display image to GUI
pil_image.show()

# save image as "image_name.jpg"
pil_image.save("image_name.jpg")

Python 에서 OpenCV 를 이용하여 url 로 부터 이미지 보여주기

Python OpenCV 와 PIL 의 상호 변환

728x90