>  기사  >  백엔드 개발  >  Python이 URL을 통해 이미지를 여는 방법에 대한 자세한 설명

Python이 URL을 통해 이미지를 여는 방법에 대한 자세한 설명

黄舟
黄舟원래의
2017-06-04 10:16:162256검색

이 글에서는 URL을 통해 이미지를 여는 Python과 자세한 예시를 소개합니다. 필요한 친구들은

Python을 통해 URL을 통해 이미지를 여는 방법을 참고하세요.

OpenCV, PIL, skimage 등 라이브러리를 사용하든지, 이전에는

이미지 처리를 할 때 거의 모든 로컬 이미지를 읽었습니다. 최근에는 사진을 크롤링해서 저장하기 전에 빠르게 사진을 찾아본 후 선택적으로 저장하고 싶었습니다. 여기서는 URL에서 이미지를 읽어야 합니다. 많은 정보를 확인해보니 여러 가지 방법이 있다는 것을 알게 되었고 여기에 기록을 남겨보겠습니다.

이 글에 사용된 이미지 URL은 다음과 같습니다:

img_src = 'http://wx2.sinaimg.cn/mw690/ac38503ely1fesz8m0ov6j20qo140dix.jpg'

1. OpenCV 사용하기

OpenCV의 imread()는 로컬 이미지만 로드할 수 있으며 URL을 통해서는 이미지를 로드할 수 없습니다. 그러나 opencv의 VideoCapture 클래스는 URL에서

videos를 로드할 수 있습니다. opencv만 사용하는 경우 우회 방법을 사용할 수 있습니다. 먼저 VideoCapure를 사용하여 URL 아래에 이미지를 로드한 다음 Mat에 전달합니다.

import cv2
cap = cv2.VideoCapture(img_src)
if( cap.isOpened() ) :
  ret,img = cap.read()
  cv2.imshow("image",img)
  cv2.waitKey()

2. OpenCV+Numpy+urllib

import numpy as np
import urllib
import cv2
resp = urllib.urlopen(img_src)
image = np.asarray(bytearray(resp.read()), dtype="uint8")
image = cv2.imdecode(image, cv2.IMREAD_COLOR)
cv2.imshow("Image", image)
cv2.waitKey(0)

urlopen은

read() ,
readline

() , readlines() ,

file을 제공하는 클래스 fileobject을 반환합니다. no(), close(): 이 메서드는 파일 객체와 똑같이 사용됩니다. 그런 다음 반환된 파일류 객체를 다시 인코딩하고 그림으로 변환한 후 Mat에 전달합니다.

3.PIL+requests

import requests as req
from PIL import Image
from io import BytesIO
response = req.get(img_src)
image = Image.open(BytesIO(response.content))
image.show()

requests는 요청 응답 본문에 바이트 단위로 액세스할 수 있습니다. 위는 요청에서 반환된 바이너리 데이터에서 이미지를 생성하는 코드입니다.

4.skimage

from skimage import io
image = io.imread(img_src)
io.imshow(image)
io.show()

상대적으로 말하면 이 방법이 가장 간단합니다. 왜냐하면 skimage는 다른 도움이나 로터리 없이 imread()

함수를 사용하여 웹 이미지를 직접 읽을 수 있기 때문입니다.

위 내용은 Python이 URL을 통해 이미지를 여는 방법에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.