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

السؤال

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.

  • إعلانات

  • تابعنا على



×
×
  • أضف...