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

ظهور الخطأ DisabledFunctionError: cv2.imshow() is disabled in Colab عند محاولة عرض صورة على googlecolab باستخدام OpenCV في بايثون

Ali Ismael

السؤال

استخدم googlecolab  للتطبيق بعض الخوارزميات على الصور، لكن  بمجرد محاولة استخدام الدالة cv2.imshow يظهر لي الخطأ التالي، على سبيل المثال:

import cv2
import numpy as np
img1 = cv2.imread(r'/content/test1 closedeye.jpg') 
imageresult = cv2.cvtColor(img1, cv2.COLOR_BGR2HSV)
cv2.imshow('res',img1)
cv2.waitKey(0)
cv2.destroyAllWindows()
cv2.imwrite('d:\HSV.png',imageresult)
---------------------------------------------------------------------------

DisabledFunctionError                     Traceback (most recent call last)

<ipython-input-1-c9e483595677> in <module>()
      6 imageresult = cv2.cvtColor(img1, cv2.COLOR_BGR2HSV)
      7 # عرض الصورة الناتجة وتخزينها
----> 8 cv2.imshow('res',img1)
      9 cv2.waitKey(0)
     10 cv2.destroyAllWindows()

/usr/local/lib/python3.7/dist-packages/google/colab/_import_hooks/_cv2.py in wrapped(*args, **kwargs)
     50   def wrapped(*args, **kwargs):
     51     if not os.environ.get(env_var, False):
---> 52       raise DisabledFunctionError(message, name or func.__name__)
     53     return func(*args, **kwargs)
     54 

DisabledFunctionError: cv2.imshow() is disabled in Colab, because it causes Jupyter sessions
to crash; see https://github.com/jupyter/notebook/issues/3935.

 

 

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

Recommended Posts

  • 1

يظهر هذا الخطأ لأن غوغل كولاب لايدعم استخدام هذه الدالة، لذا كحل بديل يقدم كولاب الدالة:

google.colab.patches.cv2_imshow(your_image)

وبالتالي يمكنك استخدامها بدلاً من الدالة cv2.imshow كما يلي:

import cv2
import numpy as np
img1 = cv2.imread(r'/content/test1 closedeye.jpg') 
imageresult = cv2.cvtColor(img1, cv2.COLOR_BGR2HSV)
from google.colab.patches import cv2_imshow # نقوم باستيرادها 
# استخدامها
cv2_imshow(imageresult)

أو كحل آخر استخدم مكتبة Matplotlib لكن ستضطر في هذه الحالة إلى تغيير فضاء الألوان للصورة من BGR إلى RGB لأن OpenCV تقرأ الصور بصيغة BGR:

from matplotlib import pyplot as plt
import cv2
# قراءة الصورة
img = cv2.imread(r'C:\Users\Windows.10\Desktop\All\test5 openeye.jpg')
# RGB تحويلها إلى 
img= cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
# عرضها
plt.imshow(img)
تم التعديل في بواسطة Ali Haidar Ahmad
رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 1

بشكل عام، يعاني Jupyter notebook من بعض المشاكل في التعامل opencv لذا هناك أكثر من حل:

أولا اللجوء الى استخدام matplotlib ولكن هذا يقتضي شكلاً خاصاً لاستخدامها داخل Jupyter كالتالي:

%matplotlib inline
#هذا السطر مهم لاستخدام المكتبة بداخلJupyter Notebook

import cv2
from matplotlib import pyplot as plt

#استدعاء الصورة
image = cv2.imread("input_path")

# تعديل ألوان الصورة
image= cv2.cvtColor(image, cv2.COLOR_BGR2RGB)

#عرض الصورة
plt.imshow(image)
plt.show()

الحل الثاني أن تقوم باستدعاء cv2.imshow من colab كالتالي كما أوضح أستاذ علي:

google.colab.patches.cv2_imshow(your_image)

 

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

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

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

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

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   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.

  • إعلانات

  • تابعنا على



×
×
  • أضف...