先生我的项目加载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)
型
请带我
预先感谢你的宝贵帮助
关于
1条答案
按热度按时间l2osamch1#
我没有足够的分数来写评论,但据我所知,从你的代码中,主要问题是你试图以其本机格式(即彩色图像)读取图像。
您需要使用0(灰度)模式将其读取为灰度,或者使用“cvtColor(img,cv2.COLOR_BGR2GRAY)”将其转换为灰度。“(!=CV-8 U)”表示需要处理灰度图像。
要素匹配教程为here for your reference.