Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何消除OpenCV代码中的非类型错误_Python_Opencv_Nonetype_Aruco - Fatal编程技术网

Python 如何消除OpenCV代码中的非类型错误

Python 如何消除OpenCV代码中的非类型错误,python,opencv,nonetype,aruco,Python,Opencv,Nonetype,Aruco,我正在尝试使用python中的OpenCV使用ArUco标记 vidcap = cv2.VideoCapture(0) vidcap.set(cv2.CAP_PROP_BUFFERSIZE, 1) c = np.array(np.zeros([9,4,2])) while vidcap.isOpened(): exists,image = vidcap.read() if exists: image = cv2.resize(image, (1200, 800)) arucodi

我正在尝试使用python中的OpenCV使用ArUco标记

vidcap = cv2.VideoCapture(0)
vidcap.set(cv2.CAP_PROP_BUFFERSIZE, 1)
c = np.array(np.zeros([9,4,2]))
while vidcap.isOpened():
exists,image = vidcap.read()
if exists:
    image = cv2.resize(image, (1200, 800))
    arucodict = aruco.Dictionary_get(aruco.DICT_6X6_50)
    arucoparams = aruco.DetectorParameters_create()
    (corners, id, rejected) = aruco.detectMarkers(image, arucodict, parameters=arucoparams)
    for (a,b) in zip(corners,id):
        if b in range(0,10):
            c[b-1]=a
for语句正在抛出错误 对于拉链式(a,b)(角落,id): TypeError:“非类型”对象不可编辑


我做错了什么?

如果vidcap向您提供与我相同的输入数据(因为我不知道您在图像中寻找的是什么),您很可能会尝试处理空列表;特别是拐角处。我添加了一个检查:

vidcap.set(cv2.CAP_PROP_BUFFERSIZE, 1)
c = np.array(np.zeros([9,4,2]))
while vidcap.isOpened():
    exists,image = vidcap.read()
    if exists:
        image = cv2.resize(image, (1200, 800))
        arucodict = aruco.Dictionary_get(aruco.DICT_6X6_50)
        arucoparams = aruco.DetectorParameters_create()
        (corners, id, rejected) = aruco.detectMarkers(image, arucodict, parameters=arucoparams)
        if corners:
            for (a,b) in zip(corners,id):
                if b in range(0,10):
                    c[b-1]=a

始终将完整的错误消息(从单词“Traceback”开始)作为文本(不是屏幕截图,也不是指向外部门户的链接)进行讨论(不是评论)。还有其他有用的信息。如果错误显示哪一行出现问题,则首先可以使用
print()
print(type())
检查变量中的内容。似乎您在
角落中有
None
id
,只有您可以使用
print()
检查它。当你知道哪个变量有
None
时,你必须检查给出这个
None
-
detectMarkers
-的代码,你必须弄清楚为什么它给出
None
。我们没有您的数据,我们无法运行您的代码,因此我们无法检查为什么它会给出