MATLAB--无法导入cv2库



我是OpenCV的初学者,正在尝试运行一个开源程序。http://asrl.utias.utoronto.ca/code/gpusurf/index.html

我目前安装了Computer Vision Toolbox OpenCV Interface 20.1.0和Computer Vision Toolbox9.2。

我无法运行这个简单的开源特征匹配算法而不遇到错误。

import cv2
import matplotlib.pyplot as plt
%matplotlib inline
% read images
img1 = cv2.imread('[INSERT PATH #1]');  
img2 = cv2.imread('[INSERT PATH #2]');
img1 = cv2.cvtColor(img1, cv2.COLOR_BGR2GRAY);
img2 = cv2.cvtColor(img2, cv2.COLOR_BGR2GRAY);
%sift
sift = cv2.xfeatures2d.SIFT_create();
keypoints_1, descriptors_1 = sift.detectAndCompute(img1,None);
keypoints_2, descriptors_2 = sift.detectAndCompute(img2,None);
len(keypoints_1), len(keypoints_2)

返回以下消息:

Error: File: Keypoints.m Line: 1 Column: 8
The import statement 'import cv2' cannot be found or cannot be imported. Imported names must end with '.*' or be
fully qualified.

然而,当我删除第1行时,却出现了以下错误。

Error: File: Keypoints.m Line: 2 Column: 8
The import statement 'import matplotlib.pyplot' cannot be found or cannot be imported. Imported names must end
with '.*' or be fully qualified.

最后,遵循错误消息只会导致来自cv2库的一系列其他错误。有什么想法吗?

这是因为您使用的代码不是MATLAB代码,而是python代码。

根据您链接的网站:

来自Matlab

使用surf_find_keypoints()函数可以运行在Matlab中编码的并行实现。输出关键点可以使用surf_best_n_keypoints()按强度排序,并使用surf_plot_keypoints()绘制。

请检查您是否下载了正确的文件,然后重试。

此外,Matlab OpenCV接口被设计为集成C++OpenCV代码,而不是python。此处提供文档。

是的,这是正确的Python代码。我建议您检查依赖项/库。PyCharm IDE是我个人使用的,因为它可以轻松地处理所有库。

如果您最终尝试了PyCharm,请在CV2上悬停时单击红色图标。然后它会提示您下载库。

编辑:使用Python可以进行一些设置。使用pip:

  1. 安装opencv-pythonpip安装opencv-python

  2. 安装opencv-controb-pythonpip安装opencv-contrib python

不幸的是,sift功能存在一些问题,因为默认情况下,它被排除在较新的免费OpenCV版本之外。

sift=cv2.xfeatures2d.sift_create((不工作,即使已安装

import cv2
Image_1 = cv2.imread("Image_1.png", cv2.IMREAD_COLOR)
Image_2 = cv2.imread("Image_2.jpg", cv2.IMREAD_COLOR)
Image_1 = cv2.cvtColor(Image_1, cv2.COLOR_BGR2GRAY)
Image_2 = cv2.cvtColor(Image_2, cv2.COLOR_BGR2GRAY)
sift = cv2.SIFT_create()
keypoints_1, descriptors_1 = sift.detectAndCompute(Image_1,None)
keypoints_2, descriptors_2 = sift.detectAndCompute(Image_2,None)
len(keypoints_1), len(keypoints_2)

我收到的错误:

"/Users/michael/Documents/PYTHON/Test Folder/venv/bin/python" "/Users/michael/Documents/PYTHON/Test Folder/Testing.py"
Traceback (most recent call last):
File "/Users/michael/Documents/PYTHON/Test Folder/Testing.py", line 9, in <module>
sift = cv2.SIFT_create()
AttributeError: module 'cv2.cv2' has no attribute 'SIFT_create'
Process finished with exit code 1

相关内容

  • 没有找到相关文章

最新更新