2014-09-12 1 views
5

savefig을 통해 matplotlib을 사용하여 일부 수치를 생성합니다. 이 수치는 흑백이며 TIFF 형식의 매우 높은 해상도 (1000dpi)로 저장해야합니다. 따라서 메모리를 적게 사용하려면 비트 심도를 줄여 저장하는 것이 좋습니다.Matplotlib을 사용하여 생성 된 숫자의 비트 심도 변경

내 질문 : matplotlib로 수치를 저장할 때 비트 깊이를 어떻게 지정합니까?

감사합니다.

+0

PNG에 저장 하시겠습니까? – mdurant

+0

PNG를 포함한 모든 래스터 형식에 대한 답변에 관심이 있지만 실제로 TIFF 형식으로 저장하고 있습니다. – sircolinton

+0

matplotlib이 그런 옵션을 직접 지원한다면 놀랄 것입니다. 물론 나중에 이미지를 변환 할 수는 있습니다. 또는 선호하는 파이썬 이미지 라이브러리를 사용하여 matplotlib 컨텐츠에서 생성 된 수적으로 배열 이미지 표현을 저장할 수 있습니다. –

답변

1

지금까지 matplotlib가 비트 심도 옵션을 지원하지 않는다는 인상을 받았습니다. 나는 경우 다른 사람에 말할 것이다

convert -monochrome +dither A.tiff B.tiff

몇 가지 유사 할 노력하고있다 : 나는 이렇게 이미지를 posthoc을 변환하는 ImageMagick를 사용하고 내가 먼저 convert -monochrome A.tiff B.tiff을 실행하여 비트 깊이를 변경

, 폰트는 용납 할 수 없을만큼 추한 것처럼 보였다 (심지어 1000 DPI에서!). 이것은 앤티 앨리어싱 때문이었습니다. matplotlib는 기본적으로이 기능을 수행합니다. 나는이 옵션을 끌 수있는 옵션을 찾을 수 없지만 DPI를 다운 샘플링 할 때의 부정적인 영향은 디더링을 사용함으로써 크게 회피 될 수 있습니다. 그러므로, 이이라도 matplotlib에서 출력 이미지의 DPI를 변경하는 옵션이 있더라도 디더링을 수행하거나 앤티 엘리 어싱을 비활성화하는 옵션이 없으면 유용하지 않습니다.

짧은 대답은 내가 한 것처럼 posthoc 단색 변환을 수행하는 비슷한 상황에있는 누구에게나 제안 할 것입니다.

관련 문제