栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

‘SIFT‘ is not a member of ‘cv‘ 的解决办法

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

‘SIFT‘ is not a member of ‘cv‘ 的解决办法

在golang中使用opencv,已经在本地安装了opencv-v4.3.0,运行如下代码:

package main

import (
	"fmt"

	"gocv.io/x/gocv"
)

func main() {
	fmt.Printf("gocv version: %sn", gocv.Version())
	fmt.Printf("opencv lib version: %sn", gocv.OpenCVVersion())
}

报错:'SIFT' is not a member of 'cv' typedef cv::Ptr* SIFT;

原因:在go mod tidy 时,使用gocv的其他版本,与opencv 4.3.0的版本冲突
解决办法:修改 go.mod中gocv包的版本,将其改为0.23.0版

require gocv.io/x/gocv v0.30.0 改为 require gocv.io/x/gocv v0.23.0

修改后再次go mod tidy即可。

重新运行程序,成功运行结果:

gocv version: 0.23.0
opencv lib version: 4.3.0

总结:依赖库的版本(golang为gocv)与 opencv版本 的版本冲突,会导致此类问题;

其他语言,遇到这类问题,可能也是依赖库版本与opencv版本冲突导致,如python的opencv-contrib-python库的版本,可以参考这个解决。

为啥说到其他语言呢,因为昨晚遇到这个问题,第一时间度了,结果搜索了一大堆都是其他语言遇到的这个问题,golang貌似使用opencv的文档很少,这一大堆的解决方法都试了下,并没有能解决问题,也没有提到是依赖库版本与opencv版本不对应导致的,还是自己摸索吧,一不小心又熬夜了。。。

在此记录下,以后少熬夜,大家也少熬夜

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/870290.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号