[英]cv2.imread error:img = cv2.imread(0) SystemError: <built-in function imread> returned NULL without setting an error
[英]<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.