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

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

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

  1. 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)
这是我的完整代码

  1. import cv2
  2. import numpy as np
  3. import os
  4. fingerprint_test = cv2.imread("D:/mfapython/muhammadisthebest.tif")
  5. cv2.imshow("Original", cv2.resize(fingerprint_test, None, fx=1, fy=1))
  6. cv2.waitKey(0)
  7. cv2.destroyAllWindows()
  8. for file in [file for file in os.listdir("D:/mfapython/fingerprintdatabase")]:
  9. fingerprint_database_image = cv2.imread("D:/mfapython/fingerprintdatabase/*.bmp", 1 )
  10. sift = cv2.SIFT_create()
  11. sift = .detectAndCompute()
  12. keypoints_1, descriptors_1 = sift.detectAndCompute(fingerprint_test, None)
  13. 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.

相关问题