【问题标题】:select an element in a python list without comma-separated在没有逗号分隔的python列表中选择一个元素
【发布时间】:2019-03-04 19:52:34
【问题描述】:

我有一个这样的列表:

[[437   5  91  91]
 [331 303 155 155]]

如何选择此列表中的第一个或第二个元素? 我想要的输出:

[437   5  91  91]

在人脸检测中我的相机中有两张脸,然后我的输出中有这个列表:

face_cascade = cv2.CascadeClassifier(PATH) 
.... 
faces = face_cascade.detectMultiScale( gray, 
                                       scaleFactor=1.2, 
                                       minNeighbors=10, 
                                       minSize=(self.face_size, self.face_size) 
                                      )

当我打印(面孔)时,我有这个输出,我想选择其中一个元素。

type(faces) gives `<class 'numpy.ndarray'>` this is type of faces

【问题讨论】:

  • 那不是一个有效的 python 列表。这是一个语法错误。
  • 你的意思是一个看起来像列表的字符串对吧?
  • 你是不是说这是一个字符串,你想把它转换成一个列表?
  • 当我打印(面孔)时,我有这个输出,我想选择其中一个元素
  • 这不是 vanilla python 中的有效列表。您可能希望使用您正在使用的其他库更新您的问题,以及生成“列表”开始的代码。它可能是具有不同访问语法的不同对象类型。你试过type(list)吗?

标签: python opencv numpy-ndarray


【解决方案1】:

问题:我想选择其中一个元素。

了解Common Sequence Operations


docs.opencv.org
Python: cv2.CascadeClassifier.detectMultiScale2(image[, scaleFactor[, minNeighbors[, flags[, minSize[, maxSize]]]]]) → 对象, numDetections

检测输入图像中不同大小的对象。
检测到的对象以矩形列表的形式返回。

这个调用返回两个对象,可以拆分,例如:

objects, numDetections =  cv2.CascadeClassifier.detectMultiScale2(...

objects, numDetections =  faces

objects = faces[0]
numDetections =  faces[1]

【讨论】:

    【解决方案2】:

    假设您的意思是 strinh 而不是列表,您可以执行以下操作

    import json
    
    test="[[437   5  91  91] [331 303 155 155]]"
    
    #convert the multiple whitespace to single white space
    test=' '.join(test.split())
    
    #replace whitespace with comma
    test=test.replace(" ",",")
    
    #make a list of it
    lists = json.loads(test)
    
    print(lists[0])
    

    【讨论】:

      猜你喜欢
      • 2012-06-29
      • 2022-11-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-08-20
      • 1970-01-01
      • 2014-12-21
      • 2012-11-03
      相关资源
      最近更新 更多