matlab이나 python 고수님 계시면 부탁드려요

  • #1837939
    matlab 71.***.114.127 1190

    안녕하세요. 주변에 matlab이나 python을 잘 아시는분이 없어 이렇게 문의를 드려봅니다. 저는 수학과 석사 학생이구요 MRI관련된 작은 프로젝트를 받아서 하고 있습니다. 저는 주로 python을 사용해와서 가능하면 활용하려고 하는데요 256 x 256 x 3 complex valued float(4-byte or 32-byte)로 된 data set(bin file) 을 python이나 matlab에서 실행 시키면 깨어진 이미지 파일이 나오네요. 논문 데이터라 잘못될 경우는 없는듯 싶은데…제가 프로그램을 돌리는 방법을 모르겠는네요.

    Matlab에서
    fid=fopen(‘f.bin’, ‘rb’)
    c=fread(fid, [256 256],’single)
    imshow(c)

    제 생각에는 fread가 잘못된거 같은데;;;
    3일째 이리 저리 찾아보고 있는데 정말 답답해서 이렇게 올려봅니다. ㅠ
    감사합니다.

    • h1b-7 74.***.252.30

      전 structure 쪽이라 대수관련은 잘 모르겠는데, Binary file 상수가 맞는지 확인해 보심이 어떨지?

    • stackoverflow 116.***.144.40

      여기보다는 stackoverflow.com에 질문 올려보세요.

    • Z 69.***.150.58

      1. Google
      2. Binary file은 endian에 주의.

      전 평생 matlab을 접한 적이 없는데, 1 방법을 이용하니 답이 나오네요.

    • 엔지니어 71.***.8.85

      python을 사용해 본 적은 없지만, function이 standard C와 비슷한 거 한마디 씁니다.
      먼저 읽으려면 file의 크기를 확인하세요.
      196608 byte 인지 786432 byte 인지 확인하시고, 해당 size 만큼 읽으시면 됩니다.
      제 생각에786432면 datasize를 256*256*3로 해야합니다.

    • ㅍㅍ 99.***.192.95

      리드 버퍼의 크기와 관련이 있어보이는 군요. 윗분말씀대로 버퍼의 크기를 늘려보세요

    • 궁금 192.***.142.154

      꽤 오래전에 해보거라 기억이 가물가물하지만…

      complex number 라면
      imaginary number 는 imshow 에서 안될것같다는…
      sqrt(c.^2) 혹은, abs(c), 혹은, real(c) 로 잡아주면
      일단 이미지는 나올듯…

      fread 라인에 single 어포스트로피 안닫아준것도 문제일수 있고…