2016-09-05 5 views
3

저는 파이썬에 익숙하지 않습니다. 제 질문이 사소한 것 같으면 사전에 사과드립니다..h5 파일에서 얻은 이미지 배열을 파이썬으로 어떻게 바꿀 수 있습니까?

일치 및 일치하지 않는 그룹으로 구성된 그레이 스케일 이미지 쌍을 포함하는 .h5 파일이 있습니다. 마지막으로 이미지의 각 쌍을 2 개의 채널 (실제로는 각 채널이 이미지 임)의 단일 이미지로 간주해야합니다.

내가 이런 식으로 계속 내 데이터를 사용하려면 :

  1. 내가 (I 모두 모양으로, 두 그룹 모두 일치 및 비 일치 읽어 NumPy와 배열에 내 데이터를 퍼팅 .h5 파일을 읽고 (50000,4096)) :

    reshaped_data_m = np_m.reshape(250000,2,4096) 
    
:

with h5py.File('supervised_64x64.h5','r') as hf: 
    match = hf.get('/match') 
    non_match = hf.get('/non-match') 
    np_m = np.asarray(match) 
    np_nm = np.asarray(non_match) 
    hf.close() 
  • 는 다음 나는 배열을 바꿀려고3210

    이제 배열을 (250000,2,4096)으로 바꾼 다음 해당 이미지가 실제로 표시되는지 보여 주려고 시도합니다. 하지만 배열을 (25000,64,64,2)로 바꿀 필요가 있습니다. 이렇게하면 검정색 이미지가 모두 나타납니다.

    도와 주시겠습니까? 미리 감사드립니다.

  • +0

    당신을 도울 방법을 알고, 당신은 이미지 자체에 대해 좀 더 많은 정보를 제공해야합니다. 어떤 형식으로 저장됩니까? 4096 숫자의 1D 배열로? – meetaig

    +0

    죄송합니다. 이미지가 bmp로 저장된다는 것을 잊어 버렸습니다. 배열은 1D 4096 float64 숫자입니다. – Paola

    답변

    2

    먼저 250000x2x4096에서 250000x4096x2까지 입력 행렬을 바꿔야하는데, 그 후에 reshape을 수행 할 수 있습니다.

    운 좋게도, numpy는 트릭을 수행해야하는 transpose 함수를 제공합니다. 조 변경에 대한 더 자세한 설명은 this question을 참조하십시오. 특정 경우

    는, 호출은 다음과 같습니다

    transposed_data_m = numpy.transpose(np_m, [1, 3, 2]) 
    reshaped_data_m = tranposed_data_m.reshape(250000, 64, 64, 2) 
    
    +0

    좋은, 나는 심지어 '2'가 바뀌는 장소를 보지 못했다. 나는 이것이 OP가 찾고있는 해결책이 될 것이라고 생각한다 – meetaig

    +0

    당신의 제안에 감사드립니다! 불행하게도 나는 계속 검은 이미지를 얻는다. – Paola

    관련 문제