0

저는 파이썬과 낸피와 함께 동일한 픽셀 차원의 여러 이미지를 가져와 2D 배열을 만들려고합니다. 그래서 배열의 각 행은 하나의 이미지를 나타내고 각 열은 픽셀을 나타냅니다. 특정 위치.numpy 배열로 이미지 연결하기 python

이 작업을 위해 이미지 파일을 읽고 numpy.concatenate를 사용하려고했습니다. 코드는이 코드와 X의 모양이 형식에 매번 나오는 실행

#url of picture data 
X_p = data.link 
#list for storing the picture data 
X= [] 

#read in the image from the url, and skip poster with 404 error 
for url in X_p: 
    try: 
     loadimg = urllib.request.urlopen(url) 
     image_file = io.BytesIO(loadimg.read()) 
     img = Image.open(image_file) 

     #Concatenate to linearize 
     X.append(np.concatenate(np.array(img))) 

    #404 error 
    except urllib.error.HTTPError as err: 
     if err.code == 404: 
      continue 
     else: 
      raise 

#cast the list into numpy array  
X = np.array(X) 
#test to see if X is in correct dimension 
print(X.shape) 

입니다

(이미지의 수, 높이 X 폭, 3) 예를 들어

, 경우 내가하여 200x200 픽셀의 12 개 이미지 URL을로드, 결과는

(12, 40000, 3)

내가 필요하면 끝에서 3을 제거하는 것입니다, 내가하지 않는 경우가 어렵다 심지어 3이 어디서 왔는지 이해합니다.

내가 가진 문제가 잘못된 위치에 추가되거나 연결되어 있다고 가정합니다. np.concatenate를 제거했을 때 간단히 나타났습니다 (12, 200, 200, 3).

나는 numpy 이미지 처리 및 연결을 온라인으로 검색했지만 어떤 일이 일어 났는지 설명하고 해결할 수있는 모든 항목을 실행하지 않았습니다.

모든 도움을 주시면 감사하겠습니다. 이 게시물을 읽고 응답하는 데 시간을 보내 주심에 미리 감사드립니다.

답변

0

나는이 문제를 파악했습니다. 내 배열의 차원에 궁금해 했으므로 SO를 검색하여 1 차원을 늘리거나 줄이는 질문을합니다. 3 점이 무엇을 의미하는지 설명하는 게시물을 가로 질렀습니다.

How can I save 3D array results to a 4D array in Python/numpy?

Image.open().convert("L") 

나를 위해 작동하지 않았다, 그래서 트릭

with Image.open().convert("L") as img 

내가 for 루프 후이 라인을 추가하고, 치수 문제가 수정되었습니다를 사용했다.

관련 문제