기괴한 사용자 정의 헤더로 .RAW 파일을 여는 방법


0

클래스 프로젝트를 위해 열어야하는 다음과 같은 형식의 기괴한 .raw 파일이 있습니다. 487x414 사진의 예를 사용하여 다음과 같은 구조로되어 있습니다.

  • 행의 수는 2 개의 부호없는 바이트 (01E7)입니다.
  • 열의 수는 2 개의 부호없는 바이트 (019E)입니다.
  • 각 픽셀을 나타내는 비트 수 (항상 8입니다)
  • 실제 사진 데이터

이 프로젝트는 .raw 파일에서 가장자리 감지를 실행하는 것이지만 교수는 이전의 이미지 편집 소프트웨어로 열 수 있어야한다고 말했습니다. (분명히 그는 내가 바이트 수를 설정하는 창이 표시 될 것으로 예상합니다. 헤더), 그래서 나는 아무 소용이 다음과 같은 시도 :

  • Paint.net
  • 포토샵 요소
  • Adobe Lightroom
  • ImageMagick
  • DCRaw

나는 듀얼 부팅 우분투 및 Windows, 그래서 만약 내가 어떻게이 파일을 표시 얻을 수있는 아이디어를 가지고 (나는 OpenCV에 히스토그램으로로드하려고 현재 노력하고있어,하지만 내 결과를 확인하고 싶습니다 반대), 크게 감사하겠습니다.


ufraw 해봐. 내 카메라 (nikon)에서 원시 파일을 편집하는 데 사용하고 대부분의 다른 형식을 지원한다는 것을 알고 있습니다. 시도해 볼만한 가치가 있어야합니다.
Holloway

나는 그것을 시도했다. 그러나 불행하게도 그것은 일하지 않았다. 이 답이없는 질문을 상기시켜 줘서 고마워.
Seanny123

답변:


0

나는 당신이 찾을 수있는 파이썬 스크립트를 작성해야만했다. 이리 . 중요한 부분이 있습니다.

#Load the raw file
f = open(filename,'rb') # switch to command line args later
#Because the byte order is weird
a = f.read(1)
b = f.read(1)
#First line is rows
rows = int((b+a).encode('hex'), 16)
a = f.read(1)
b = f.read(1)
#Second line is columns
cols = int((b+a).encode('hex'), 16)
#Last byte is encoding, but we're just going to ignore it
f.read(1)
#And everything else is 8 bit encoded, so let's load it into numpy and display it with matplotlib
bin_image = np.fromstring(f.read(), dtype=np.uint8)
#Change the shape of the array to the actual shape of the picture
bin_image.shape = (cols, rows)

fig = pylab.figure()
#Display the original image
fig.add_subplot(1,4,1)
pylab.imshow(bin_image, cmap=cm.gray)

이 방법이 효과가 있다면이 질문을 대답하지 않은 채로 제거하려면 허용으로 표시하십시오.
Holloway
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.