簡體   English   中英

<built-in function imread>返回 NULL 沒有設置錯誤</built-in>

[英]<built-in function imread> returned NULL without setting an error

    def image_descriptors(file):
      img = cv2.imread(file,0)
      img = cv2.resize(img, (256, 256))
      _ , descriptors = cv2.SIFT().detectAndCompute(img, None)
   return descriptors
   def folder_descriptors(folder):
     cv_img=[]
     for img in glob.glob("*.jpg"):
         n=cv2.imread(img)
         cv_img.append(n)
   print("Calculating descriptos. Number of images is", len(cv_img))
   return np.concatenate([image_descriptors(file) for file in cv_img])

我在 output 屏幕中得到以下信息:計算描述。 圖像數量為 274 SystemError: returned NULL 未設置錯誤

Path.glob返回Path object 的列表( PosixPath中的WindowsPath或 linux 中的 PosixPath)。 cv2.imread期望字符串

您可以使用str class ( str(path_object) )從Path object 獲取路徑字符串或從Path object ( path_object.__str__() )構建魔術方法

def image_descriptors(file):
  img = cv2.imread(file,0)
  img = cv2.resize(img, (256, 256))
  _ , descriptors = cv2.SIFT().detectAndCompute(img, None)
  return descriptors
def folder_descriptors(folder):
  cv_img=[]
  for img in glob.glob("*.jpg"):
     # convert `Path` object to string
     n=cv2.imread(str(img))
     cv_img.append(n)
  print("Calculating descriptos. Number of images is", len(cv_img))
  return np.concatenate([image_descriptors(file) for file in cv_img])

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM