2012-06-18 22 views
10

ग्रे स्केल छवियों के लिए बीएमपी प्रारूप क्या है (विशेष रूप से 16 बिट प्रति पिक्सेल के लिए)? wikipedia बस बीएमपी के लिए रंगीन छवियों के बारे में बात करता है।ग्रे स्केल छवियों के लिए बीएमपी प्रारूप क्या है?

अद्यतन:

बस एक अद्यतन और भावी आगंतुकों के लिए जानकारी के लिए

, मैं PGM के लिए जा रहा हूँ के रूप में इस असम्पीडित है और 16 बिट ग्रे पैमाने पर समर्थन कर सकते हैं। एक और विकल्प PNG का उपयोग करना था, लेकिन यह डेटा को संकुचित करता है (जो मैं नहीं चाहता) जैसा कि here पर चर्चा की गई है। यह भी ध्यान दें कि छवि विकृत दिखाई दे सकती है, क्योंकि अधिकांश मॉनीटर 256 रंगों का समर्थन करते हैं और 16 बिट के लिए 4096 नहीं। तो छवि संतृप्त हो जाएगी।

हालांकि यह आश्चर्य की बात है पता चला है कि बीएमपी लगभग 16 बिट छवियों के लिए ग्रे पैमाने के मामले में असहाय है।
उन लोगों के लिए धन्यवाद जिन्होंने मुझे इस मुद्दे को समझने में मदद की।

+0

यदि आप 16 बिट ग्रे स्केल चाहते हैं तो आपको एक अलग प्रारूप का उपयोग करने की आवश्यकता है - मैं पीएनजी का सुझाव देता हूं। –

+0

क्या यह हानि-कम संपीड़न है? – gpuguy

+0

हाँ, पीएनजी दोषरहित है - यह संपीड़न के लिए zlib का उपयोग करता है: https://en.wikipedia.org/wiki/Portable_Network_Graphics –

उत्तर

3

ग्रेस्केल छवियों के लिए, मैं 8-बिट बीएमपी का उपयोग करूंगा। 8 बिट बीएमपी पैलेट के साथ रंग एन्कोड कर सकते हैं। हालांकि, यदि आप एक का उपयोग नहीं करते हैं, तो आप काले रंग (0) से सफेद (255) के रंगों के रूप में रंग मान [0...255] की व्याख्या कर सकते हैं।

संपादित करें: मैं 16-बिट ग्रेस्केल छवियों के लिए बीएमपी का उपयोग नहीं करता। तकनीकी रूप से, आप 16-बिट ग्रेस्केल डेटा (http://en.wikipedia.org/wiki/BMP_file_format#Pixel_format) एन्कोडिंग के लिए 16-बिट प्रति पिक्सेल बीएमपी प्रारूप का उपयोग कर सकते हैं। हालांकि अभ्यास में यह एक बुरा विचार है (पढ़ें: हैकी) क्योंकि उस गहराई को पिक्सल के अल्फा, लाल, हरे और नीले नमूने को एन्कोड करने के लिए डिज़ाइन किया गया है।

16-बिट प्रति पिक्सेल ग्रेस्केल डेटा संग्रहीत करने के लिए एक बेहतर प्रारूप पीएनजी है।

यह भी पूछें कि क्या आपको वास्तव में उस अतिरिक्त परिशुद्धता की आवश्यकता है? अधिकांश अनुप्रयोगों के लिए, प्रति बिट 8 बिट्स ठीक है (= यदि आपके पास परिशुद्धता पर कोई विशिष्ट आवश्यकता नहीं है, तो यह मामला होगा)।

+0

यह does not वास्तव में अपने 16 बिट ग्रेस्केल छवियों के साथ उसकी मदद। – trumpetlicks

+0

हाँ। सवाल उस जानकारी के साथ बाद में अद्यतन किया गया था। – jsalonen

+0

क्षमाप्रार्थी ने उस अद्यतन पर ध्यान नहीं दिया :-) – trumpetlicks

2

आप सही हैं, बीएमपी केवल रंगों के बारे में जानता है। ऐसा करने का तरीका 256 प्रविष्टियों का एक पैलेट बनाना है, जहां प्रत्येक प्रविष्टि के पास आर, जी, बी: पहली प्रविष्टि (0,0,0), दूसरी प्रविष्टि (1,1,1) आदि के लिए समान मान है। पैलेट का उपयोग कर प्रति छवि 8 बिट प्रति पिक्सेल बनाओ।

संपादित करें: 16 बिट ग्रेस्केल के लिए अपनी नई आवश्यकता को देखते हुए, मुझे लगता है कि आपके पास 2 विकल्प हैं: 8 बिट में कनवर्ट करें, या बीएमपी के अलावा किसी अन्य प्रारूप का उपयोग करें।

+0

यह वास्तव में उसकी 16 बिट ग्रेस्केल छवियों के साथ उसकी मदद नहीं करता !!! – trumpetlicks

+0

@trumpetlicks, लिखे गए प्रश्न में 16 बिट का उल्लेख नहीं किया गया था। –

+0

क्षमाप्रार्थी, उस पर ध्यान देने के रूप में ध्यान नहीं दिया :-) इसके अलावा, अच्छा जवाब! – trumpetlicks

1

जैसा कि प्रतीत होता है, टीआईएफएफ और पीएनजी मूल रूप से 16 बिट ग्रेस्केल का समर्थन करते हैं।

http://en.wikipedia.org/wiki/Grayscale

इम यह सोचते हैं कि इन छवियों को आप सहेजना चाहते हैं बस प्रदर्शन के लिए लेकिन पोस्ट प्रोसेसिंग के कुछ प्रकार जहां अतिरिक्त परिशुद्धता की जरूरत के लिए नहीं कर रहे हैं? यदि नहीं, तो मैं कम से कम महत्वपूर्ण 8 बिट्स को हटाने का सुझाव दूंगा, और एक रंग मैप के साथ एक साधारण 8 बिट बिटमैप संग्रहीत करना होगा ताकि प्रत्येक मान को आरजीबी में वैल्यू -> (वैल्यू, वैल्यू, वैल्यू) आरजीबी मैपिंग के साथ मैप किया जा सके।

संबंधित मुद्दे