错误OpenCV不正确的深度(!=CV_8U)指纹检测

jobtbby3  于 2023-11-22  发布在  其他
关注(0)|答案(1)|浏览(193)

先生我的项目加载TIF格式的所有指纹图片,但这个命令

sift = cv2.SIFT_create()

字符串
请参阅下面的错误
cv2.error:OpenCV(4.8.1)D:\a\opencv-python\opencv\modules\features 2d\src\sift.dispatch.cpp:512:错误:(-5:错误参数)图像为空或函数'cv::SIFT_Impl::detectAndCompute'中的深度不正确(!=CV_8U)
这是我的完整代码

import cv2
import numpy as np
import os
fingerprint_test = cv2.imread("D:/mfapython/muhammadisthebest.tif")
cv2.imshow("Original", cv2.resize(fingerprint_test, None, fx=1, fy=1))
cv2.waitKey(0)
cv2.destroyAllWindows()
for file in [file for file in os.listdir("D:/mfapython/fingerprintdatabase")]:
    fingerprint_database_image = cv2.imread("D:/mfapython/fingerprintdatabase/*.bmp", 1 )
    sift = cv2.SIFT_create()
    sift = .detectAndCompute() 
    keypoints_1, descriptors_1 = sift.detectAndCompute(fingerprint_test, None)
    keypoints_2, descriptors_2 = sift.detectAndCompute(fingerprint_database_image, None)


请带我
预先感谢你的宝贵帮助
关于

l2osamch

l2osamch1#

我没有足够的分数来写评论,但据我所知,从你的代码中,主要问题是你试图以其本机格式(即彩色图像)读取图像。
您需要使用0(灰度)模式将其读取为灰度,或者使用“cvtColor(img,cv2.COLOR_BGR2GRAY)”将其转换为灰度。“(!=CV-8 U)”表示需要处理灰度图像。
要素匹配教程为here for your reference.

相关问题