Ali Ismael نشر 23 أكتوبر 2021 أرسل تقرير مشاركة نشر 23 أكتوبر 2021 أريد إجراء عملية عكس لبيانات الصورة الرمادية، فهل هناك طريقة للقيام بذلك في بايثون؟ 1 اقتباس رابط هذا التعليق شارك على الشبكات الإجتماعية More sharing options...
1 Ali Haidar Ahmad نشر 23 أكتوبر 2021 أرسل تقرير مشاركة نشر 23 أكتوبر 2021 يمكنك استخدام الدالة bitwise_not لإيجاد صورة المعكوس (المتمم) للصورة الأصلية، حيث نمرر الصورة للدالة وهي تتكفل بإنتاجها حيث تكون قيمة كل بكسل في الصورة الناتجة هي المتمم إلى 255 لقيمة البكسل الأصلية. فمثلاً لو كانت قيمة البكسل في الصورة الأصلية 100 ستكون قيمته في الصورة الناتجة 155 لأن: 255-100=155 مثال: import cv2 import numpy as np # قراءة الصورة image = cv2.imread('/content/test.jpg') # تحويلها إلى الصيغة الرمادية image=cv2.cvtColor(image, cv2.COLOR_BGR2GRAY) # عكس الصورة inverted = cv2.bitwise_not(image) from google.colab.patches import cv2_imshow cv2_imshow(image) cv2_imshow(inverted) الصورة الأصلية: الصورة الناتجة: كما يمكنك استخدام الدالة np.invert التي تؤدي نفس الغرض: import cv2 import numpy as np image = cv2.imread('/content/test.jpg') # تحويلها إلى الصيغة الرمادية image=cv2.cvtColor(image, cv2.COLOR_BGR2GRAY) # عكس الصورة inverted = np.invert(image) from google.colab.patches import cv2_imshow cv2_imshow(image) cv2_imshow(inverted) 1 اقتباس رابط هذا التعليق شارك على الشبكات الإجتماعية More sharing options...
1 Ahmed Sharshar نشر 25 أكتوبر 2021 أرسل تقرير مشاركة نشر 25 أكتوبر 2021 في البداية علينا فهم معنى الصورة الرمادية، هي تتكون من عدد من البيسكل متراوحة من 0 الى 255 بحيث ان 0 هو الأسود و 255 هو الابيض. لذلك لعكس الأبيض مع الأسود كل ما علينا فعله هو طرح ال 255 من قيمة كل بيكسل وبذلك يتحول الأبيض الي مقابله من الأسود ببساطة. قد تستطيع فعل هذا بشكل يدوي عن طريق طرح كل بيكسل ثم رسم الصورة الجديدة هكذا: def inverte(imagem, name): imagem = (255-imagem) cv2.imwrite(name, imagem) def inverte2(imagem, name): for x in np.nditer(imagem, op_flags=['readwrite']): x = abs(x - 255) cv2.imwrite(name, imagem) if __name__ == '__main__': nome = str(sys.argv[1]) image = cv2.imread(nome) gs_imagem = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY) inverte(gs_imagem, "invertida.png") inverte2(gs_imagem, "invertida2.png") أو بشكل مختصر بعلامه ~ والتي تعني العكس كالتالي: import cv2 image = cv2.imread("img.png") image = ~image cv2.imwrite("img_inv.png",image) أو باستخدام bitwise_not: imagem = cv2.bitwise_not(imagem) وفي كل الأحوال تظهر كالتالي: الصورة الأصلية بعد التحويل: اقتباس رابط هذا التعليق شارك على الشبكات الإجتماعية More sharing options...
السؤال
Ali Ismael
أريد إجراء عملية عكس لبيانات الصورة الرمادية، فهل هناك طريقة للقيام بذلك في بايثون؟
رابط هذا التعليق
شارك على الشبكات الإجتماعية
2 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.