[ WARN:0@0.009] global shadow_sift.hpp:15 cv::xfeatures2d::SIFT_create DEPRECATED: cv.xfeatures2d.SIFT_create() is deprecated due SIFT tranfer to the main repository. https://github.com/opencv/opencv/issues/16736
时间: 2024-04-28 13:23:33 浏览: 14
这个警告是由OpenCV库中的SIFT算法引起的。它告诉我们,SIFT_create()方法已被弃用,并且该算法已经从OpenCV的扩展库中移动到主库中。这是因为SIFT算法的专利权已经过期,现在可以在OpenCV的主要分支中使用。为了解决这个警告,您需要更新您的代码,以使用新的SIFT实现方式。
如果您正在使用Python,可以使用以下代码来创建新的SIFT实现:
```python
sift = cv2.SIFT_create()
```
如果您正在使用C++,可以使用以下代码:
```c++
cv::Ptr<cv::SIFT> sift = cv::SIFT::create();
```
这样,您就可以避免这个警告,使用新的SIFT实现方式。
相关问题
[ WARN:0@2.913] global shadow_sift.hpp:13 SIFT_create DEPRECATED: cv.xfeatures2d.SIFT_create() is deprecated due SIFT tranfer to the main repository
这个警告是因为 OpenCV 3.4.2 版本中的 xfeatures2d 模块中的 SIFT 实现已经被转移到了主要的模块中,因此原来的 SIFT_create() 函数现在被标记为过时的。你可以使用 cv2.xfeatures2d.SIFT_create() 函数来代替。
例如,你可以使用以下代码来创建一个 SIFT 对象:
```
sift = cv2.xfeatures2d.SIFT_create()
```
如果你使用的是 OpenCV 4.0 以上的版本,你可以使用 cv2.SIFT_create() 函数来创建 SIFT 对象:
```
sift = cv2.SIFT_create()
```
希望这些信息能够帮助你解决问题。
opencv出现了这报错,好像是专利,怎么办[ WARN:0@0.081] global shadow_sift.hpp:15 cv::xfeatures2d::SIFT_create DEPRECATED: cv.xfeatures2d.SIFT_create() is deprecated due SIFT tranfer to the main repository.
这个警告是因为OpenCV的SIFT算法被认为可能侵犯专利,因此被移动到了主仓库之外的xfeatures2d模块中。因此,官方建议使用SIFT_create()的替代方法,如SIFT::create()。这个警告并不会影响代码的运行,所以你可以忽略它,或者使用替代方法来避免这个警告。如果你确实需要使用SIFT_create()而不想看到这个警告,你可以尝试使用OpenCV的Contrib模块。