首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >cv2.SIFT()导致分段错误

cv2.SIFT()导致分段错误
EN

Stack Overflow用户
提问于 2020-09-18 11:52:10
回答 1查看 1.5K关注 0票数 2

我在一台覆盆子pi 3b上使用opencv 4.5.0-pre和python 3.7.3。我正在尝试找到最匹配的特征,以便使用SIFT进行图像拼接。我使用这个指南https://www.pyimagesearch.com/2019/09/16/install-opencv-4-on-raspberry-pi-4-and-raspbian-buster/从源代码构建了opencv。

代码语言:javascript
复制
import cv2

img1 = cv2.imread('image1.jpg')
gray1 = cv2.cvtColor(img1, cv2.COLOR_BGR2GRAY)
img2 = cv2.imread('image2.jpg')
gray2 = cv2.cvtColor(img2, cv2.COLOR_BGR2GRAY)

sift = cv2.SIFT()
kp1, des1 = sift.detectAndCompute(gray1, None)
kp2, des2 = sift.detectAndCompute(gray2, None)

在运行脚本时,会抛出以下错误:

代码语言:javascript
复制
/bin/bash: line 1:  1101 Segmentation fault      python3 stitch_imgs.py

shell returned 139

Press ENTER or type command to continue 

我已经尝试按照@Ahx推荐的方式使用cv2.xfeatures2d.SIFT_create()。但这对我也不起作用。我得到以下输出:

代码语言:javascript
复制
[ WARN:0 ] global /home/pi/opencv_contrib/modules/xfeatures2d/misc/python/shadow_shift.hpp
(15) SIFT_create DEPRECATED: cv.xfeatures2d.SIFT_create() is deprecated due to 
the main repository. https://github.com/opencv/opencv/issues/16736

Killed

有人知道我该怎么解决这个问题吗?

谢谢

EN

回答 1

Stack Overflow用户

发布于 2020-09-19 04:38:06

documentation1documentation2中,您需要声明SIFT,如下所示:

对于opencv-4.0.0

代码语言:javascript
复制
sift = cv2.xfeatures2d.SIFT_create()

适用于opencv-4.5-0-pre

代码语言:javascript
复制
sift = cv2.SIFT_create()

对于opencv-4.0.0代码:

代码语言:javascript
复制
import cv2

img1 = cv2.imread('img1.jpg')
gray1 = cv2.cvtColor(img1, cv2.COLOR_BGR2GRAY)
img2 = cv2.imread('img2.jpg')
gray2 = cv2.cvtColor(img2, cv2.COLOR_BGR2GRAY)

sift = cv2.xfeatures2d.SIFT_create()
kp1, des1 = sift.detectAndCompute(gray1, None)
kp2, des2 = sift.detectAndCompute(gray2, None)

对于opencv-4.5.0-pre Code:

代码语言:javascript
复制
import cv2

img1 = cv2.imread('img1.jpg')
gray1 = cv2.cvtColor(img1, cv2.COLOR_BGR2GRAY)
img2 = cv2.imread('img2.jpg')
gray2 = cv2.cvtColor(img2, cv2.COLOR_BGR2GRAY)

sift = cv2.SIFT_create()
kp1, des1 = sift.detectAndCompute(gray1, None)
kp2, des2 = sift.detectAndCompute(gray2, None)
票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63949074

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档