【问题标题】:Strange image while using cv2 and my camera使用 cv2 和我的相机时出现奇怪的图像
【发布时间】:2019-05-23 07:41:54
【问题描述】:

我正在尝试使用 opencv 进行一些自动化操作,但我需要摄像头的馈送。问题是现在一切正常,我无法拥有有意义的图像......

我尝试了一个使用 picamera 的简单程序来检查它是否来自我的相机,它不是......

import cv2
import numpy as np

cap = cv2.VideoCapture(-1)

if (cap.isOpened() == False): 
  print("Unable to read camera feed")

frame_width = int(cap.get(3))
frame_height = int(cap.get(4))

while(True):
  ret, frame = cap.read()

  if ret == True: 
    cv2.imshow('frame',frame)
    if cv2.waitKey(1) & 0xFF == ord('q'):
      break
  else:
    break 
cap.release()
cv2.destroyAllWindows() 

(取自:learn opencv

就像这是我的房间:screen of the output 而且我不认为它实际上看起来像那样...... 好吧,如果您有任何想法,请随时帮助我,我将非常感激。 尊敬的路易斯。

【问题讨论】:

  • 您使用的是系统的摄像头还是外接摄像头?如果您使用外接摄像头,则应将cap = cv2.VideoCapture(0) 更改为cap = cv2.VideoCapture(1)
  • 如果我执行“cap = cv2.VideoCapture(1)”,输出为:“VIDEOIO ERROR: V4L: can't open camera by index 1”唯一有效的是“cap = cv2. VideoCapture(-1)" 但它显示了那个奇怪的图像。

标签: python opencv camera raspberry-pi cv2


【解决方案1】:

要使用 picamera,我建议您使用包 picamera。您可以按照本教程部署picamera:https://www.pyimagesearch.com/2015/03/30/accessing-the-raspberry-pi-camera-with-opencv-and-python/

【讨论】:

  • 最后一个问题,我可以编辑输出吗?我希望它突出空白像素,所以通过使用这个:"image[len(image)-1-i[0]][-2+j+i[1]]=[0,0,255]" 但它给了我:"ValueError: 赋值目标是只读的"
  • 当您尝试写入只读 numpy 数组时会发生此错误。根据stackoverflow.com/questions/13572448/…,您可以将其更改为image.flags.writeable = True可写。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-08-27
  • 1970-01-01
  • 1970-01-01
  • 2017-06-25
  • 1970-01-01
  • 2013-06-06
相关资源
最近更新 更多