سؤال

وأنا أفهم RGB --- قيمة (0-255) أحمر، (0-255) الأخضر (0-255) الأزرق لتشكيل اللون.

ما هو بالضبط BGR لون الفضاء؟

وكيف تختلف من لون الفضاء RGB؟

هل كانت مفيدة؟

المحلول

وRGB لتقف على أحمر أخضر أزرق. في معظم الأحيان، يتم تخزين لون RGB في بنية أو عدد صحيح غير موقعة مع الأزرق الاحتلال أقل "منطقة" كبيرة (بايت في أشكال 32 بت و 24 بت)، أخضر ثاني الأقل، والأحمر الثلث الأقل.

وBGR هو نفسه، وإلا يتم عكس ترتيب المناطق. الأحمر تحتل أقل مساحة كبيرة، أخضر الثاني (لا يزال)، والأزرق الثالث.

في بعض المنابر (مثل Gamegear ) يتم استخدام نموذج BGR. ومع ذلك، بالنسبة لمعظم، مثل جهاز الكمبيوتر الخاص بك، ويستخدم RGB [-بحاجة لمصدر] (وإن كانت مدعومة من قبل العديد من BGR في API الرسوم البيانية لالتوافق). لست متأكدا <م> لماذا بالضبط انها تستخدم. ربما التاريخية.

وعلى سبيل المثال: (! تتم قراءة الأرقام من اليمين إلى اليسار) # FF0000 هو الأحمر النقي عندما يقرأ على أنه لون RGB عرافة (#rrggbb)، لأن المجال الثالث هو FF (القيمة القصوى، ممتلئ) وغيرها من المنطقتين هي 00 (قيمة الحد الأدنى، لا لون). إذا تليت # FF0000 كلون عرافة BGR، سيكون الأزرق النقي.

نصائح أخرى

وه حوالي <م> endianness .

وRGB هو النظام بايت. ولكن اختيار تنفيذ المتعمد لمعظم المكتبات الرسومات الفانيليا هو أنها علاج الألوان وغير موقعة الأعداد الصحيحة 32 بت داخليا، مع ثلاثة (أربعة أو كما يتم تضمين ألفا عادة) المكونات معبأة في عدد صحيح.

في آلة Endian طفيف (مثل x86) وسوف يكون في الواقع تخزين 0x01020304 صحيح في الذاكرة كما 0x04030201. وسيتم تخزين بالتالي 0x00BBGGRR كما 0xRRGGBB00!

وهكذا BGR المدى (وBGRA الخ) هو التجريد المتسرب حيث المكتبة الرسومات هو شرح كيف أن أمر هذا صحيح من الناحية المنطقية، وذلك لجعل التعليمات البرمجية التي يتم الوصول مباشرة مكونات اللون بشكل فردي أكثر قابلية للقراءة.

وتذكر أن الصور النقطية يتم الوصول إليها عادة أكثر أجزاء من الأجهزة من المعالج، وendian الذي تم تحديده من قبل، مثلا، محولات أجهزة العرض التقليدية، ليست بالضرورة نفس endian من وحدة المعالجة المركزية الخاصة بك. وعلى صعيد التلاعب القنوات في بكسل لا مشكلة لوحدة المعالجة المركزية لاستخراج حقول أيا كان ترتيبها. في محض مبرمج فهم العلامات شيء.

وهو حول الطريقة التي يتم بها وضع مكونات اللون في الذاكرة. لBGR النظام هو BGRBGRBGRBGR ...، وRGB النظام هو RGBRGBRGB ... لBGR، الترتيب الافتراضي للمكتبة برمجية مفتوحة للرؤية الحاسوبية، هو مثل هذا:

(راجع وثائق مكتبة برمجية مفتوحة للرؤية الحاسوبية ل <لأ href = "http://docs.opencv.org/doc/tutorials/core/how_to_scan_images/how_to_scan_images.html#how-the-image-matrix-is-stored-in-the-memory "يختلط =" noreferrer "> كيف يتم تخزين المصفوفة الصورة في الذاكرة؟ )

ملاحظة قد أحال إجابات أخرى لبعض الألوان كونها ذات أهمية أقل أو أكثر، ولكن هذا يعتمد في الواقع على endianness من جهازك. والنظام التعبئة من المكونات في صحيح غير الموقعة، منها مثلا، يعتمد في الواقع على البرنامج، أو المكتبة التي تستخدمه. ومع ذلك، بغض النظر عن مكتبتك، أو endiannes من جهازك، لBGR بكسل عنوان بايت للعنصر اللون B سيكون أقل واحد من لG وواثنين أقل من لR (وRGB انها مجرد العكس ).

وانها مجرد RGB في ترتيب أكثر لرقابة مشددة، مستقلة عن endianness. تحويل بينهما بسيط بمجرد أن تعرف endianness بيئتك.

ووBGR هو تمثيل 24 بت حيث السفلية تناول 8 بت زرقاء، وفي اليوم التالي، تناول 8 خضراء وأعلى، تناول 8 حمراء.

وقيم RGB تميل إلى أن تكون مكتوبة كما RGB (ص، ز، ب) حيث القيم ص / ز / ب ما بين 0 و 255 ضمنا أو #rrggbb، حيث ص ص / ز ز / ب هي القيم عرافة 8 بت. تميل كل القيم BGR رأيت أن تكون صحيحة بسيطة بين 0 و16777215 (0xffffff).

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top