技术标签: c++ opencv visual studio
在我上一篇博客已经说明怎么安装opencv4.6.0,因为遇到要做图片融合用到surf,orb等特征提取的工具,所以在基础上又加装了opencv_contrib4.6.0。
vs2019配置opencv4.6.0_rain_1324的博客-程序员秘密
先去github上找到对应的opencv_contrib4.6.0下载。
https://github.com/opencv/opencv_contrib/releases/tag/4.6.0
然后解压。
其实之所以加装opencv_contrib是因为原来的opencv库里面没有相对应的图像处理的lib和dll(动态库),所以要在原来封好的opencv的lib库中添加新的库。这时候就需要cmake工具。
Download | CMake选择下面的msi文件下载。
先新建一个空文件夹,命名要有标志性,自己能够区分出来。
然后双击打开刚才下载的cmake,在source code里将原来下载的opencv的sources文件路径放上去(注意是原来已经装好的opencv文件夹中的sources文件夹)。在build the binaries加入刚刚新建的文件夹的路径。如图所示。接着点击configure。
因为我的vs版本是2019,所以选择2019,然后就可以下一步了。
会看到下面画面,找到相应的勾上(下面没显示的不用改),接着configure。
configure结束后出现下面画面,勾上下图红框中的选项
在下载好的opencv_contrib-4.6.0文件夹中找到modules路径添加上去。
点击generate
出现下面字样为成功,若又出现标红,则继续configure。
打开vs,按照下图操作。
在生成中选择生成解决方案。等待完成
在解决方案里面,CMakeTargets–INSTALL–右键–仅用于项目–仅生成INSTALL
接着修改前面设置的电脑环境path。直接在电脑搜索中搜索path打开环境变量。
添加路径:
E:\opencv\460\opencv\opencv_contrib_460build\install\x64\vc16\bin
(在之前新建的那个文件下install文件夹找到相应的bin文件夹添加就行)
接着配置新的属性表
E:\opencv\460\opencv\opencv_contrib_460build\install\include
E:\opencv\460\opencv\opencv_contrib_460build\install\include\opencv2(切记需要根据自己的目录设置)
E:\opencv\460\opencv\opencv_contrib_460build\install\x64\vc16\lib (切记需要根据自己的目录设置)
到此配置完成。
后面我将测试surf功能。
参考:下面这篇博客非常详细,他配置的是4.4.0的版本
vs2019配置opencv+contrib-440 + PCL1.10.0 + 源码单步调试_诺有缸的高飞鸟的博客-程序员秘密_opencv_contrib
测试surf功能的博客可以看我下一篇博客:
Verilog 位拼接运算符语法要点总结Verilog位拼接运算符{}语法回顾要点总结Verilog位拼接运算符{}语法回顾 verilog中{}运算符用于“拼接”多个变量或者常量,基本用法如下:1、变量的拼接wire a[3:0], b[4:0];wire c[7:0];assign c = {a, b};2、变量与常量的拼接wire b[4:0];wire c[7:0];assign c = {3’d5, b};注意上面的常数5必须指明位宽,否则将出错。例如,不能试图通过下
问题描述:source insight查看代码时,如果每一行的代码偏长,则不好查看代码,此时就需要横向滑动条;同理当代码行数多了,则需要纵向滑动条。解决:打开source insight,选择"Options"->"Preferences"->"Display"勾上Horizontal scroll bars 和Vertical scroll bars即可。注意:...
在写微信统一服务通知的时候遇到这个问题,这是因为该openid没有关注公众号、或者没有在小程序里面给用户授权接收通知报错的,关注下公众号或者授权接收通知就好了。
models.py1 模型、属性、表、字段间的关系2 一个模型类在数据库中对应一张表,在模型类中定义的属性,对应该模型对照表中的一个字段3 注意:__init__方法已经在父类models.Model中使用,在自定义的模型中无法使用objects:1 是Manager(管理器)类型的一个对象,作用是与数据库进行交互2 当定义模型类没有指定管理器,则django为模型创建一个名为obje...
题目:压缩感知中的数学知识:线性方程组的解====================引言====================有关“线性方程组的解”这个问题实在是太基础的一个线性代数问题,本也不想去讨论它,但近几天看麻省理工GilbertStrang的线性代数公开课,有些感触,就写写吧,因为我确实也搞不清楚“线性方程组的解”这个问题,可能当年上学时知道,但现在的确已经忘的干干净净了,而且翻...
如图,tomcat在一半卡住先说下我的尝试步骤:1.在file->Project Structure中把项目重新删除添加过,没效果2.下了个tomcat8.5尝试,没效果3.按网上说的注释tomcat bin目录下catlina.bat的JAVA_OPTS参数,没效果!!!最后有效果的方法是:在build的时候除了build,再增加build a...
为什么80%的码农都做不了架构师?>>> ...
LeetCode——用队列实现栈题目描述:请你仅使用两个队列实现一个后入先出(LIFO)的栈,并支持普通队列的全部四种操作(push、top、pop 和 empty)。实现 MyStack 类:void push(int x) 将元素 x 压入栈顶。int pop() 移除并返回栈顶元素。int top() 返回栈顶元素。boolean empty() 如果栈是空的,返回 true ;否则,返回 false 。注意:你只能使用队列的基本操作 —— 也就是 push to back、peek
ubuntu18.04关机重启后一直是:(2 of 2) A start job is running for network time synchronization (xx/s / xx)可能是由于系统内核的问题。解决方法:1.进入advanced option forubuntu寻找可以正常启动的内核;2.将该内核设置为默认启动内核。参考:我用#CSDN#这个app发现了有技术含量的博客,小伙伴们求同去《Ubuntu更改默认启动内核》, 一起来围观吧 https://blog.c.
下载Navigation到本地进行编译,如下报错:– ==> add_subdirectory(navigation-noetic-devel/costmap_2d)– Using these message generators: gencpp;geneus;genlisp;gennodejs;genpy– Could NOT find tf2_sensor_msgs (missing: tf2_sensor_msgs_DIR)– Could not find the required c
作者 |小林coding来源 |小林coding(ID:CodingLin)前言先来看看虚构的小故事已经晚上 11 点了,程序员小明的双手还在键盘上飞舞着,眼神依然注视着的电脑屏幕。...
如果把scrolling ="yes"的话,当然就可以动态随着内容的多少而改变了,这时会出现滚动条。但是如果iframe控件位于屏幕右边,如果网页的高度又很高的话,就会出现两个滚动条,一个是Iframe自已的,一个是屏幕的,这样很不友好!所以应该把iframe的滚动条去掉,如下scrolling ="no",但是这样做又会带来一个问题,多余的内容会被自动隐藏!这种问题的解决方案:如下在