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

السؤال

Recommended Posts

  • 0
نشر

لن تستطيع ذلك مباشرًة حيث colab و kaggle notebook لا يدعمان الوصول المباشر للكاميرا على حاسوبك، ستحتاج إلى استخدام فيديو مُسجل لما تريد التعرف عليه واستخدامه في الكود.

أو استخدام كود جافاسكريبت لتتمكن من استخدام كاميرا حاسوبك من خلال جوجل كولاب أو kaggle notebook، حيث يتم إلتقاط صور بواسطة الكاميرا من خلال كود جافاسكريبت لكن الصور ستكون ثابتة، ويوجد كود جاهز في colab بالضغط على الزر التالي code snippets ثم اكتب به Camera Capture وسيظهر لك مُقتطف الكود لاستخدامه بالضغط على insert:

Snag_1b15ac8.thumb.png.042429b33ac70a1254d62184f6652064.png

لو أردت تسهيل الأمر على نفسك استخدم مكتبة colab-webcam وستمكنك من إلتقاط صور أو تحويل الصور إلى فيديو حي لمحاكاة التصوير من خلال الكاميرا عن طريق إلتقاط الصور بشكل مستمر وعرضها.

  • 0
نشر

وعليكم السلام ورحمة الله وبركاته.

للأسف في Kaggle لا يمكنك الوصول إلى الكاميرا حيث لا تسمح kaggle بالوصول إلى الكاميرا في جهازك أو أى أجهزة أخرى خارجية مثل الميكروفون والكاميرا وغيرها .

وستجد أنه لا يوجد وصول للكاميرا حاليا في kaggle :

ولكن من خلال google colab يمكنك تضمين أكواد javascript والتي تسمح لك بتشغيل الكاميرا وأخذ صور منها وإليك الكود التالي الخاص بال javascript الذي يسمح لك بهذا :

from IPython.display import display, Javascript
from google.colab.output import eval_js
from base64 import b64decode

def take_photo(filename='photo.jpg', quality=0.8):
  js = Javascript('''
    async function takePhoto(quality) {
      const div = document.createElement('div');
      const capture = document.createElement('button');
      capture.textContent = 'Capture';
      div.appendChild(capture);

      const video = document.createElement('video');
      video.style.display = 'block';
      const stream = await navigator.mediaDevices.getUserMedia({video: true});

      document.body.appendChild(div);
      div.appendChild(video);
      video.srcObject = stream;
      await video.play();

      // Resize the output to fit the video element.
      google.colab.output.setIframeHeight(document.documentElement.scrollHeight, true);

      // Wait for Capture to be clicked.
      await new Promise((resolve) => capture.onclick = resolve);

      const canvas = document.createElement('canvas');
      canvas.width = video.videoWidth;
      canvas.height = video.videoHeight;
      canvas.getContext('2d').drawImage(video, 0, 0);
      stream.getVideoTracks()[0].stop();
      div.remove();
      return canvas.toDataURL('image/jpeg', quality);
    }
    ''')
  display(js)
  data = eval_js('takePhoto({})'.format(quality))
  binary = b64decode(data.split(',')[1])
  with open(filename, 'wb') as f:
    f.write(binary)
  return filename

 

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

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

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

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

  • إعلانات

  • تابعنا على



×
×
  • أضف...