اذهب إلى المحتوى
  • 0

كيفية تغيير سطوع الصورة brightness باستخدام OpenCV في بايثون

Ali Ismael

السؤال

Recommended Posts

  • 1

قم بتحويل فضاء الألوان إلى HSV، حيث أن فضاء الألوان HSV  مكون من اللونية Hue ودرجة الإشباع Saturation و درجة الإضاءة Value وبالتالي يمكننا التحكم بدرجة الإضاءة من خلال قيمة ال Value. وبالتالي نقوم بالتحويل إلى هذا الفضاء  ثم باستخلاص قناة ال v (value) ثم قم بزيادة قيمتها بالدرجة التي تحتاجها ثم أعد تركيب القنوات. وأخيراً قم بالتحويل من جديد إلى BGR أو RGB.

def incb(image, value=0):
    #HSV التحويل إلى فضاء 
    hsv = cv2.cvtColor(image, cv2.COLOR_BGR2HSV)
    # value استخلاص قناة ال
    h, s, v = cv2.split(hsv)
    # في حالة كانت القيمة التي نريد إضافتها تجعل قيمة البكسل أكبر من 255 نقوم بتثبيت
    # القيمة على 255 لأن الصورة يجب أن تكون أعلى قيمة فيها 255
    l = 255 - value
    v[v > l] = 255
    v[v <= l] += value
    image = cv2.merge((h, s, v))
    return cv2.cvtColor(image, cv2.COLOR_HSV2BGR)
  

مثال. لدينا الصورة التالية:
test.jpg.c4aa647f7bb937a31f64f515882bc19c.jpg

import cv2
# قراءة صورة
image=cv2.imread("/content/test.jpg")
# زيادة السطوع بمقدار 30 درجة
im=incb(image,30)
# عرضها
from google.colab.patches import cv2_imshow
cv2_imshow(im)

النتيجة:
index.png.aeb39b66e2d108ee5084f285d46c2df5.png

تم التعديل في بواسطة Ali Haidar Ahmad
رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 1

لزيادة سطوع الصورة، يمكننا اضافة ثابت على كل بيكسل ، فمثلا اذا كان عندنا صورة ذات قيم :

3103.png.611ee11a0e82ca324826aee344ad6411.png

لو أردنا زيادة سطوعها يمكننا اضافة 60 على كل بيكسل وتصبح هكذا:

464.png.3c3e756ff6e10d1bfd796201a7f36e36.png

اما عن الكود فيمكنك استخدام cv2.add وهي ستقوم برفع الاضاءة هكذا:

import cv2
import numpy as np

image = cv2.imread('image.png')
hsv = cv2.cvtColor(image, cv2.COLOR_BGR2HSV)
value = 60 #القيمة التي تريد زيادتها
cv2.add(hsv[:,:,2], value, hsv[:,:,2])
image = cv2.cvtColor(hsv, cv2.COLOR_HSV2BGR)
cv2.imwrite('out.png', image)

الدخل:

3.jpg.561adcea8d8e7495dbad8b604cfe82a5.jpg

والنتيجة تكون صورة أكثر سطوعا هكذا:

out.png.9c41b5b50b7c9b02f30f6a9164d0e44e.png

ويمكنك زيادة السطوع أكثر بزيادة القيمة المشار لها في الكود.

رابط هذا التعليق
شارك على الشبكات الإجتماعية

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...