我是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:
-
安装opencv-pythonpip安装opencv-python
-
安装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