تسهل حزمة imgpalr
إنشاء لوحات الألوان من ملفات الصور.
اختر نوع لوحة الألوان المستمدة من الصورة: نوعية أو متسلسلة أو متباينة.
يمكن قطع كميات من توزيع ألوان الصورة.
يمكن اقتطاع الألوان القريبة من الأسود أو القريبة من الأبيض في مساحة RGB بشكل مستقل عن تشذيب توزيعات السطوع أو التشبع في مساحة HSV.
يوفر إنشاء لوحات متسلسلة أيضًا إمكانية التحكم في ترتيب أبعاد ألوان HSV للفرز حسبها.
قم بتثبيت إصدار CRAN الخاص بـ imgpalr
باستخدام
install.packages("imgpalr")
قم بتثبيت نسخة التطوير من GitHub باستخدام
# install.packages("remotes")remotes::install_github("leonawicz/imgpalr")
الوظيفة الرئيسية هي image_pal()
. يقبل صور PNG أو JPG أو BMP أو GIF (الإطار الأول) إما من القرص أو من عنوان URL. تقوم بإرجاع متجه الألوان الذي يحدد لوحة الألوان بناءً على الصورة ووسائط الوظائف الأخرى. يمكنك أيضًا تعيين plot = TRUE
لرسم معاينة للوحة، والتي تتضمن الصورة المصغرة المصدر كمرجع مرئي.
تعرض الأمثلة أدناه بعض الاعتبارات النموذجية التي يجب اتخاذها عند استخلاص لوحة ألوان من صورة عشوائية.
في هذه المجموعة الأولى من الأمثلة، يتم إنشاء لوحات متباينة ونوعية ومتسلسلة من نفس الصورة مع تغيير بعض الإعدادات الإضافية.
مكتبة (imgpalr) set.seed(1)x <-paste0(system.file(package = "imgpalr"), "/", c("blue-yellow"، "purples"، "colors")، ".jpg")# ثلاثة أنواع من اللوحات، صورة واحدة# لوحة متباينةimage_pal(x[1], type = "div"، saturation = c(0.75) ، 1)، السطوع = ج(0.75، 1)، المؤامرة = صحيح)
# لوحة نوعيةimage_pal(x[1], type = "qual", bw = c(0.25, 0.9),plot = TRUE)
# لوحة متسلسلةimage_pal(x[1], type = "seq", k = 2, saturation = c(0.75, 1), Brightness = c(0.75, 1), seq_by = "hsv",plot = TRUE)
في هذه الصورة الاختبارية، يختلف اللون على نطاق ضيق. تعتبر اللوحة المتسلسلة معقولة هنا، ولكن ليس بالضرورة أن يتم فرزها بشكل أفضل حسب اللون. يؤدي القيام بذلك إلى إظهار ترتيب يمكن إدراكه للألوان، لكن تمييزه أكثر صعوبة. يؤدي فرز اللوحة أولاً حسب التشبع أو السطوع إلى إنشاء لوحة تسلسلية أفضل بكثير في هذه الحالة.
image_pal(x[2]، اكتب = "seq"، seq_by = "hsv"، مؤامرة = TRUE)
image_pal(x[2]، اكتب = "seq"، seq_by = "svh"، مؤامرة = TRUE)
image_pal(x[2]، اكتب = "seq"، seq_by = "vsh"، مؤامرة = TRUE)
باستخدام صورة ذات ألوان بارزة عديدة، فإن استخدام لوحة ألوان متباينة ليس أمرًا معقولًا هنا. من المرجح أن يتم فرز التسلسل بشكل أفضل حسب اللون.
لاحظ في الصورة الثانية أدناه، أنه يمكنك أيضًا تعيين quantize = TRUE
لإظهار صورة مصغرة مرجعية محددة الألوان بناءً على اللوحة المشتقة. وهذا يجعل من استخدام وظيفة image_quantmap()
. بدلاً من تحديد حجم الصورة فقط، فإنه يفعل ذلك أثناء تعيين ألوان أي صورة إلى لوحة ألوان عشوائية بناءً على أقرب المسافات في مساحة RGB.
image_pal(x[3]، اكتب = "qual"، السطوع = c(0.4، 1)، مؤامرة = TRUE)
image_pal(x[3]، اكتب = "seq"، وزن الجسم = c(0.2، 1)، التشبع = c(0.2، 1)، المؤامرة = TRUE، التكميم = TRUE)
يستخدم إنشاء لوحة الألوان التجميع بالوسائل k؛ تختلف النتائج في كل مرة تتصل فيها image_pal()
. إذا كانت لوحة الألوان التي حصلت عليها لا تبدو صحيحة، فحتى مع الوسائط الثابتة، يمكنك تشغيلها مرة أخرى للحصول على لوحة مختلفة. اعتمادًا على الإعدادات وطبيعة الصورة المصدر، قد تتغير قليلاً. إذا كنت بحاجة إلى لوحة قابلة للتكرار، فقم بتعيين الوسيطة seed
. في المثال أعلاه، تم تعيين البذرة بشكل عام لتجنب الاضطرار إلى تعيينها في كل استدعاء لـ image_pal()
.
يمكنك قياس الألوان في الصورة باستخدام image_quantmap()
مباشرة. اختر أي ناقل من الألوان. يتم تعيين لون كل بكسل إلى أي من هذه الألوان الأقرب إليه في مساحة RGB. يتم إرجاع مجموعة RGB. يمكنك رسم الصورة باستخدام اللوحة.
x <- system.file ("blue-yellow.jpg"، package = "imgpalr")pal <- c("black"، "navyblue"، "dodgerblue"، "yellow")a <- image_quantmap(x، pal) ، ك = 7، المؤامرة = صحيح)
str(a)#> رقم [1:317, 1:400, 1:3] 0 0 0 0 0 0 0 0 0 0 ...
يعمل هذا بشكل جيد إذا كنت تريد قياس الألوان إلى ألوان على مسافة قصيرة في مساحة RGB، ولكن إذا كنت تريد أيضًا تبديلها بألوان مختلفة جدًا، فيجب أن تكون هذه عملية من خطوتين. إذا قمت بتوفير متجه متساوي الطول من الألوان للوسيطة pal2
، فستحل هذه الألوان محل الألوان الموجودة في pal
بعد التكميم الأولي.
pal2 <- c("darkred"، "darkgreen"، "tomato"، "orange")a <- image_quantmap(x، pal، pal2، k = 7، مؤامرة = TRUE، show_pal = FALSE)
ملحوظة: يمكن أن تكون هذه الوظيفة بطيئة جدًا بالنسبة للصور k
و/أو الكبيرة.
هناك أيضًا حزمة RImagePalette على CRAN، والتي تستخدم خوارزمية القطع المتوسطة للعثور على الألوان السائدة في الصورة.
تم استلهام imgpalr
في الأصل من حزمة لوحة الألوان الموجودة على GitHub. تستخدم كلتا الحزمتين تجميع الوسائل k للعثور على ألوان الصور الرئيسية، لكنهما تتبعان بعض الأساليب المختلفة في طرق تجميع لوحات الألوان.
تعتمد معاينة اللوحة (بدون إضافة الصورة المصغرة) على scales::show_col()
، وهي وظيفة مناسبة لتخطيط اللوحات. يمكنك أيضًا استخدام pals::pal.bands()
لفعل الشيء نفسه باستخدام تخطيط مرئي مختلف.
إذا كنت تريد معالجة خصائص لون الصورة بشكل مباشر لذاتها بدلاً من استخلاص لوحات الألوان لأغراض أخرى، فيمكنك القيام بذلك باستخدام الحزمة السحرية، التي توفر روابط لمكتبة ImageMagick.
ماثيو ليونافيتش (2024). imgpalr: إنشاء لوحات الألوان من الصور. إصدار حزمة R 0.4.0. https://CRAN.R-project.org/package=imgpalr
المساهمات هي موضع ترحيب. المساهمة من خلال GitHub عبر طلب السحب. يرجى إنشاء مشكلة أولاً إذا كانت تتعلق بإضافة أو تغيير أي ميزة جوهرية.
يرجى ملاحظة أن مشروع imgpalr
تم إصداره مع قواعد سلوك المساهمين. من خلال المساهمة في هذا المشروع، فإنك توافق على الالتزام بشروطه.