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

السؤال

نشر (معدل)

استخدم 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.

  • إعلانات

  • تابعنا على



×
×
  • أضف...