当前位置: 首页 > news >正文

【OpenCV图像处理系列一】OpenCV开发环境的安装与搭建(Ubuntu + Window都适用)

🔗 运行环境:OpenCV,Ubuntu,Windows

🚩 撰写作者:左手の明天

🥇 精选专栏:《python》

🔥  推荐专栏:《算法研究》

#### 防伪水印——左手の明天 ####

💗 大家好🤗🤗🤗,我是左手の明天!好久不见,今天开始开启新的篇章——OpenCV💗

📆  最近更新:2023 年 02 月 12 日,左手の明天的第 272 篇原创博客

📚 更新于专栏:OpenCV详解

#### 防伪水印——左手の明天 ####


1. Ubuntu 下编译 opencv 源代码(For linux & Android

1.1 下载 opencv 源码

Opencv 各个版本的下载地址:
(opencv 中文网):http://www.opencv.org.cn/index.php/Download
opencv 英文网):http://sourceforge.net/projects/opencvlibrary/files/
建立目录~/Opencv2.2
将其解压到~/Opencv2.2/OpenCV-2.2.0
并在~/Opencv2.2 中建立 opencv-build 目录,用来存放编译后的 opencv

1.2 下载安装 Cmake

下载网址: http://www.cmake.org/cmake/resources/software.html
这里采用命令行安装 Cmake 的方式
$ sudo apt-get install cmake
$ sudo apt-get install cmake-qt-gui

1.3 安装 ubuntu 下必要的库文件:

sudo apt-get install pkg-config libgtk2.0-dev libjpeg libtiff libjasper libpng zlib
openexr libjpeg-dev ffmpeg libgstreamer libv4l libv4l-0 libv4l-dev libxine unicap
libavformat-dev libswscale-dev swig libjpeg-progs build-essential python-numpy

可能会出现依赖包libjasper-dev无法安装的情况,出现错误提示:
E: Unable to locate package libjasper-dev
 
此时,可以分为两步完成:
(1) 首先安装除了libjasper-dev之外的所有包:
sudo apt-get install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libdc1394-22-dev
 
(2) 然后单独安装libjasper-dev包:
sudo add-apt-repository "deb http://security.ubuntu.com/ubuntu xenial-security main"
sudo apt update
sudo apt install libjasper1 libjasper-dev

1.4 使用 Cmake 进行配置:

(1)打开 Cmake
$ cmake-gui

(2)进行配置:

首先按照之前建立的文件夹路径,选择好 opencv 源码路径和 build 路径
源码路径为:~/Opencv2.2/OpenCV-2.2.0
Build 目标路径:~/Opencv2.2/OpenCV-2.2.0
然后点击 Configure(可能需要点击两次),然后点击 Generate,配置工作就完成了。
(可能使用 Cmake 进行配置就是为了生成面向不同开发目标平台的 Makefile,之后再用编
译器编译出相应的 opencv 的库文件)

 

1.5 编译 opencv 生成 linux 下的 opencv 库文件

$ cd ~/2.2opencv/opencv-build/
~/2.2opencv/opencv-build$ make

编译完成后,执行安装命令将生成的库文件安装到 Ubuntu 系统的相应路径中去

~/2.2opencv/opencv-build$ make install

对于 Ubuntu

头文件会安装到:urs/local/include
库文件会安装到:usr/local/lib
至此 Opencv Linux 下的库文件就编译和安装完成了。可以使用 codeblocks 调用库文件进
Opencv 的开发。
编译中如果总是出错,有可能是选择的 Opencv 版本与 Ubuntu 中相关环境的版本不匹配,
所以最好选择 poencv2.2 或者是 opencv2.0

1.6 测试 linux Opencv 例程

终端下转到刚才解压的 OpenCV-2.2.0/samples/c 文件夹下,里面有一个 build_all.sh 脚本

执行它:bash ./build_all.sh,成功之后,ls命令查看,生成了一个facedetect执行文件,./facedetect 执行它!如果弹出一个捕捉脸部的窗口,就成功了。

$ cd /home/sunny/2.2opencv/OpenCV-2.2.0/samples/c
/2.2opencv/OpenCV-2.2.0/samples/c$ bash ./build_all.sh
/2.2opencv/OpenCV-2.2.0/samples/c$ ./facedetect
注:如果在最后执行 facedetect 时报错:./facedetect: error while loading shared libraries: libopencv_core.so.2.2: cannot open shared object file: No such file or directory
这是因为你没有装 ffmpeg,输入 sudo -apt-get install ffmpeg 安装,安装成功之后再执行
facedectect 即可!

1.7 Opencv For Android 的编译

1.7.1 安装 ndk

由于 Google 官方版本的 Android ndk 并不能完全支持所有的 C++特性,所以如果要使用
Opencv 就必须重新安装经过特殊修改的 ndk
下载网址: http://www.crystax.net/android/ndk-r4.php (注意选择相应的版本)
下载之后将其解压到自己的 home 目录。在家目录(~)下会生成 android-ndk-r4-crystax
目录。(注: 这个目录是源码中相应 Makefile 配置的相应默认 NDK 目录)

1.7.2 安装 Android SDK

从 google 开发网站上下载 android SDK,安装完整个 SDK 后,需要将 toolsplatform-tools
等工具的目录添加到系统的 PATH 环境变量中,方便之后在任意路径下使用 SDK 的相关工
具。

1.7.3 编译 opencv 中关于 android 相关的源码

1.7.3.1 静态库的编译

~$ cd 2.2opencv/OpenCV-2.2.0/android/
~/2.2opencv/OpenCV-2.2.0/android$ mkdir build
~/2.2opencv/OpenCV-2.2.0/android$ cd build/
~/2.2opencv/OpenCV-2.2.0/android/build$
~/2.2opencv/OpenCV-2.2.0/android/build$ cmake .. 
~/2.2opencv/OpenCV-2.2.0/android/build$ make

编译阶段会花费一些时间

1.7.3.2 共享库的编译

~$ cd 2.2opencv/OpenCV-2.2.0/android/android-jni
~/2.2opencv/OpenCV-2.2.0/android/android-jni$ make
首先进行 make 首次会提醒修改 local.env.mk,这里就是进行配置 NDK 的相关的路径。
如果自己的 NDK 已经解压到了${HOME}目录,就不需要进行修改:
local.env.mk 文件
路径为:/home/sunny/2.2opencv/OpenCV-2.2.0/android/android-jni/local.env.mk
文件内容如下:
#location of android-opencv.mk file that was generated by the cmake build
#of opencv for android
OPENCV_CONFIG=../build/android-opencv.mk#the root directory of the crystax r4 ndk - ndk-build should be in this dir
#you can download the ndk from http://www.crystax.net/android/ndk-r4.php
ANDROID_NDK_ROOT=$(HOME)/android-ndk-r4-crystax#define only armeabi-v7a to make the final apk smaller or armeabi
ARM_TARGETS="armeabi armeabi-v7a"

修改完路径之后,再次 make,就开始编译共享链接库了。

注意:每个工程文件的目录下都会由一个 local.env.mk 文件用于配置相关的 NDK 路径,在
下面编译例子程序 CvCamera 的时候也要注意。最好是将 NDK 解压到家目录,这样在以后
就不需要进行配置了。

1.7.3.3 安装 ant 进行 Java 相关的编译

ant 版本最好要 1.8 以上
~$ sudo apt-get install ant1.8

安装完成之后,就开始接着编译 Java 先关的部分:

~/2.2opencv/OpenCV-2.2.0/android/android-jni$ sh ./project_create.sh
~/2.2opencv/OpenCV-2.2.0/android/android-jni$ ant compile

至此 Opencv 中关于 Android 的相关代码就编译完成了。最终的生成文件可能是在:

~/2.2opencv/OpenCV-2.2.0/android/build/obj/local 目录中,这些在配置 eclipse+android+opencv 的开发环境会用到。(具体到时候再进行验证)
Opencv-2.2.0 _|_android_|_android-jni|_apps|_build
上面是 opencv 源码中 android 相关目录架构,其中 apps 目录下是一些 opencv android 的例子
程序。在 build 目录下是最终编译出来的相关库文件。

1.7.3.4 编译安装 android 下的测试程序 CVCamera

~$ cd 2.2opencv/OpenCV-2.2.0/android/apps/CVCamera/
~/2.2opencv/OpenCV-2.2.0/android/apps/CVCamera$ sh build.sh
~/2.2opencv/OpenCV-2.2.0/android/apps/CVCamera$ make

这一步主要是建立 swig wrappers and shared library.

SWIG 是一种简化脚本语言与 C/C++接口的开发工具。简而言之,SWIG 是一个通过包装和编译 C 语言程序来达到与脚本语言通讯目的的工具。)
接下来开始编译生成 android apk
~/2.2opencv/OpenCV-2.2.0/android/apps/CVCamera$sh project_create.sh
~/2.2opencv/OpenCV-2.2.0/android/apps/CVCamera$ ant debug

这样就在当前目录下的 bin 目录生成了 debug 版的 apkCVCamera-debug.apk

执行下面的命令将 apk 安装到手机上(事先已经通过 USB 连接手机)
~/2.2opencv/OpenCV-2.2.0/android/apps/CVCamera$ ant install

上面的整个过程,既是用来检验 opencv 编译的是否成功也是 android opencv 编程及编译的

很好的例子。

2. Ubuntu 下 codeblocks Opencv 开发环境配置

linux PC 中使用 codeblocks IDE 进行 Opencv 的开发仅仅需要将上一章中编译生成的
Opencv 的头文件和库文件,加入编译搜索路径即可。

2.1 下载安装 codeblocks

网址:http://www.codeblocks.org/downloads/26
老版本:http://www.codeblocks.org/downloads/source/5
注意要下载稳定版 不要下载测试版或者 debug

2.2 打开 cldeblocks 建立一个摄像头的测试程序:

先在家目录下建立一个文件夹 workplace 专门用来存放 codeblocks 的工程文件。
建立的工程文件名为:camera_demo
测试代码如下:
#include<highgui.h>
int main()
{int c;IplImage *img;CvCapture* capture = cvCaptureFromCAM(-1);cvNamedWindow("mainWin", CV_WINDOW_AUTOSIZE);cvMoveWindow("mainWin", 50, 50);while(1){img=cvQueryFrame(capture);cvShowImage("mainWin", img );c=cvWaitKey(10);//按 ESC 键离开if(c == 27)break;}cvReleaseImage(&img);cvDestroyWindow("mainWin");return 0;
}

2.3 配置工程的头文件和链接库

在左侧的 projects 窗口中在工程文件 camera_demo 上鼠标右键,然后选择 Build options ...
在弹出来的对话框中进行配置,左边是选择配置 Debug 版本还是 Release 版本,可以两个都
配置一遍。首先在 Linker settings 中点击 Add 按钮,添加 opencv 的库文件。
路径:/usr/local/lib ,将其中的所有.so 文件都添加进来。

然后配置路径:

头文件路径:
Search directories 中选中 Compiler,点击 Add 按钮,将两个 opencv 的头文件目录添加
路径:/usr/local/include/opencv
路径:/usr/local/include/opencv2
紧接着在 Linker 选项中点击 Add 按钮,将 lib 的路径添加
路径:/usr/local/lib
至此相关的配置就完成了,可以点击

 运行按钮,进行编译测试。

但是以上的配置都是针对本工程文件的,如果下次再新建工程就失效了。如果想要对全局生
效,就要在菜单栏的 Settings->Compiler...->Global compiler settings 重复设置刚才的过程:

 

相关参考网址:
编译 Ubuntu Opencvhttp://blog.csdn.net/huangmou37/article/details/6207800
编译 opencv forAndroid:http://hi.baidu.com/cwyalpha/item/b76f6cc0601a522def46652d
官方编译 for androidhttp://opencv.willowgarage.com/wiki/Android2.2
官方配置 for codeblocks http://opencv.willowgarage.com/wiki/CodeBlocks
配置 for codeblockshttp://blog.csdn.net/hitwengqi/article/details/7985343

 3. Windows7 + codeblocks Opencv 开发环境搭建

(注:以下的每个路径都需要根据自己安装时设置的路径进行修改)

3.1 下载 opencv2.2

网址: http://www.opencv.org.cn/index.php/Download#Version_2.2

直接下载网址:http://www.opencv.org.cn/download/OpenCV-2.2.0-win.zip

3.2 解 压 OpenCV-2.2.0-win.zip E:\OpenCV-2.2.0,并且建立空文件夹 E:\OpenCV-2.2.0-build

3.3 下载 CMake2.8

网址:http://www.cmake.org/cmake/resources/software.html

3.4 安装 CMake 按照默认的配置,一路 next

3.5 打开 CMake

在上面的两个路径中分别找到 opencv 的源代码目录 E:\OpenCV-2.2.0,和自己新建的空文件
E:\OpenCV-2.2.0-build,这个目录用来生成 opencv 的编译结果。

3.6 环境变量的设置

本文之前已经安装好 codeblocks,在其安装的目录下会有 MinGW 工具(即:即 Minimalist
GNU For Windows),里面是用来编译 opencv 源码的编译工具。需要将他们的路径添加到系
统的环境变量 Path 中。(系统的 Path 或是当前用户的 Path 都行)

方法:

开始->计算机->右键->属性->高级系统设置->环境变量
Path 中添加如下 C:\Program Files (x86)\CodeBlocks\MinGW\bin
(注意各个路径之间需要使用英文的分号 隔开)
MinGW 路径

 

环境变量的设置

 

3.7 在 CMake 中点击 configure

选择生成的目标平台为 codeblocks MinGW,然后点击 FInish

configure 之后,再点击 generate 生成。这时 E:\OpenCV-2.2.0-build 下会生成 lib 目录。

3.8 编译 oepncv 源码

windows 键+R,打开 cmd 进入 windows 下的 DOS 命令行终端,在命令行下进入 E:\OpenCV-2.2.0-build 目录。

3.8.1 先进入 E

输入 E:

3.8.2 进入目录 OpenCV-2.2.0-build

输入 cd OpenCV-2.2.0-build

3.8.3 编译 opencv 源码

在命令行下输入 :mingw32-make

 然后需要等待很久,进行编译

3.8.4 安装 opencv 库文件

命令行下输入mingw32-make install

 完成之后会在 OpenCV-2.2.0-build/lib 文件夹下会生成库文件:

 会在 OpenCV-2.2.0-build/include 文件加下会生成头文件:

3.9 使用 codeblocks 建立 openv 工程

打开 codeblocks,菜单栏上:File->New->Project->Console application->C++

 

输入文件名(opencv_test),选择存放的目录,然后点击 Finish

3.10 测试代码

将测试代码粘贴到 main.cpp 文件中
#include <highgui.h>
int main()
{int c;IplImage *img;CvCapture* capture = cvCaptureFromCAM(-1);//此处-1 代表自动检测cvNamedWindow("mainWin", CV_WINDOW_AUTOSIZE);cvMoveWindow("mainWin", 50, 50);while(1){img=cvQueryFrame(capture);cvShowImage("mainWin", img );c=cvWaitKey(10);if(c == 27)break;}cvReleaseImage(&img);cvDestroyWindow("mainWin");return 0;
}

但是此时编译还不能成功,因为 codeblocks 的编译器还不知道 opencv 的头文件和相应的库文件的位置,在编译的时候就无法进行 include 的链接库文件。

3.11 给工程文件添加 opencv 相关路径

codeblocks 左侧的 Projects 下在工程 opencv_test 上右键选择 Build options
首先添加 opencv 库文件:
Linker settings 下,点击 Add,然后将 E:/OpenCV-2.2.0-build/lib 文件夹下的库文件全部添加。

 然后添加 opencv 的相关搜索路径,在 Search directories

首先是 include 路径的添加,选中 Compiler 然后点击 Add E:/OpenCV-2.2.0-build/include 添加进去。

 

然后是 lib 路径的添加,选中 Linker,然后点击 Add E:/OpenCV-2.2.0-build/lib 添加进去。

 

最后还要将 opencv bin 目录添加到系统的环境变量中去

 

方法:
开始->计算机->右键->属性->高级系统设置->环境变量
Path 中添加如下 E:/OpenCV-2.2.0-build/bin
(注意同前一个路径之间要使用英文的分号 隔开)
此时 opencv 的相关配置就完成了。

3.12 编译工程文件

点击 Build and run 按钮 ,进行编译。
注:如果不添加环境变量,也可以在 CMake 中配置的时候选中特殊的本地编译器,然后选
择刚刚 codeblocks 安装目录中的相应 MinGW 编译器。
C 编译器:C:\Program Files (x86)\CodeBlocks\MinGW\bin\gcc.exe
C++ 编译器: C:\Program Files (x86)\CodeBlocks\MinGW\bin\g++.exe

 


 🌟全文共  8911 个字,码字总结不易,老铁们来个三连:点赞、关注、评论🌟

🌟作者:左手の明天🌟

🌟原创不易,转载请联系作者并注明出处🌟

 

相关文章:

【OpenCV图像处理系列一】OpenCV开发环境的安装与搭建(Ubuntu + Window都适用)

&#x1f517; 运行环境&#xff1a;OpenCV&#xff0c;Ubuntu&#xff0c;Windows &#x1f6a9; 撰写作者&#xff1a;左手の明天 &#x1f947; 精选专栏&#xff1a;《python》 &#x1f525; 推荐专栏&#xff1a;《算法研究》 #### 防伪水印——左手の明天 #### &#x…...

【代码随想录】-动态规划专题

文章目录理论基础斐波拉契数列爬楼梯使用最小花费爬楼梯不同路径不同路径 II整数拆分不同的二叉搜索树背包问题——理论基础01背包二维dp数组01背包一维数组&#xff08;滚动数组&#xff09;装满背包分割等和子集最后一块石头的重量 II目标和一和零完全背包零钱兑换 II组合总和…...

c++数据类型 输入输出

C++语法 //常用包: iostream:cin cout endl cstdio:scanf printf algorithm:max min reverse swap cstring:memset memcpymemset(a,-1,sizeof a) 填充数组memcpy(b,a,sizeof a) 将a数组复制到b数组,长度是a数组字节长度 cmath:sin sqrt pow abs fabs编程是一种控制计…...

【设计模式-11】责任链模式

认识设计模式&#xff08;十一&#xff09;---责任链模式【一】责任链模式【二】介绍&#xff08;1&#xff09;意图&#xff08;2&#xff09;主要解决&#xff08;3&#xff09;何时使用&#xff08;4&#xff09;如何解决&#xff08;5&#xff09;关键代码&#xff08;6&am…...

SpringBoot+Vue实现智能物流管理系统

文末获取源码 开发语言&#xff1a;Java 框架&#xff1a;springboot JDK版本&#xff1a;JDK1.8 服务器&#xff1a;tomcat7 数据库&#xff1a;mysql 5.7/8.0 数据库工具&#xff1a;Navicat11 开发软件&#xff1a;eclipse/myeclipse/idea Maven包&#xff1a;Maven3.3.9 浏…...

【MT7628】MT7628如何修改串口波特率、调试串口物理口、使用UART3口

环境说明 sdk版本:Mediatek_ApSoC_SDK_4320_20150414.tar.bz2 芯片方案:MT7628A Uboot修改串口波特率方法 修改rt2880.h文件 修改include/configs/rt2880.h文件CONFIG_BAUDRATE宏的值 - #define CONFIG_BAUDRATE 57600 +#define CONFIG_BAUDRATE 115200 Kernel中修改串口波特…...

css盒模型介绍

在使用CSS进行网页布局时&#xff0c;我们一定离不开的一个东西————盒子模型。盒子模型&#xff0c;顾名思义&#xff0c;盒子就是用来装东西的&#xff0c;它装的东西就是HTML元素的内容。或者说&#xff0c;每一个可见的 HTML 元素都是一个盒子&#xff0c;下面所说的盒子…...

onetab 谷歌插件历史数据清除

文章目录方法1&#xff1a;测试也可以步骤1&#xff1a;批量执行点击步骤2&#xff1a;python 脚本模拟点击确定操作方法2&#xff1a;成功【推荐】步骤1&#xff1a;修改confirm&#xff0c;类似于hook操作步骤2&#xff1a;批量点击删除操作&#xff1a;onetab 谷歌插件历史数…...

GRBL源码简单分析

结构体说明 GRBL里面的速度规划是带运动段前瞻的&#xff0c;所以有规划运动段数据和微小运动段的区分 这里的“规划运动段”对应的数据结构是plan_block_t&#xff0c;前瞻和加减速会使用到&#xff0c;也就是通过解析G代码后出来的直接直线数据或是圆弧插补出来的拟合直线数据…...

第一部分:简单句——第一章:简单句的核心——二、简单句的核心变化(谓语动词的情态)

二、简单句的核心变化 简单句的核心变化其实就是 一主一谓&#xff08;n. v.&#xff09; 表达一件事情&#xff0c;谓语动词是其中最重要的部分&#xff0c;谓语动词的变化主要有四种&#xff1a;三态加一否&#xff08;时态、语态、情态、否定&#xff09;&#xff0c;其中…...

软考高级考试中有五大证书,其中哪个更值得考?

计算机软考属于专业技术人员职业资格水平评价类&#xff0c;是职业资格、专业技术资格&#xff08;职称&#xff09;和专业技术水平"三合一"的考试&#xff0c;是目前IT行业仅有的国家级考试。考试不受学历、专业、资历等条件限制。软考高级考试中有五大证书&#xf…...

FlexRay™ 协议控制器 (E-Ray)-04

网络管理 累积的网络管理 (NM) 向量位于网络管理寄存器 1 到网络管理寄存器 3 (NMVx (x = 1-3)) 中。【The accrued Network Management (NM) vector is located in the Network Management Register 1 to Network Management Register 3 (NMVx (x = 1-3)).】 网络管理向量 x…...

container_of 根据成员变量获得包含其的对象的地址!

写在前面 本系列文章的灵感出处均是各个技术书籍的读后感&#xff0c;详细书籍信息见文章最后的参考文献 CONTAINER_OF 在书中发现一个很有意思的宏&#xff0c;以此可以衍生出来其很多的用法&#xff0c;这个宏可以根据某个成员变量的地址得到包含这个成员变量地址的对象的…...

Linux进程概念

Linux进程概念前言冯诺依曼体系操作系统设计操作系统的目的如何理解OS是一款搞“管理”的软件&#xff1f;系统调用和库函数的概念进程的概念描述进程组织进程查看进程fork&#xff08;&#xff09;前言 本篇博客主要介绍一些&#xff1a;冯诺依曼体系、OS的理解、进程的一些概…...

算法设计与分析

两个例子:调度问题与投资问题 例1&#xff1a;调度问题 问题 有 n 项任务&#xff0c;每项任务加工时间已知.从 0时刻开始陆续安排到一台机器上加工. 每个任务的完成时间是从 0 时刻到任务加工截止的时间. 求: 总完成时间&#xff08;所有任务完成时间之和&#xff09;最短…...

C++ 基础

命名空间 在 C/C 中&#xff0c;变量、函数和类都是大量存在的&#xff0c;这些变量、函数和类的名称将都存在全局作用域中&#xff0c;可能会导致很多冲突。使用命名空间的目的是对标识符的名称进行本地化&#xff0c;以避免命名冲突或名字污染&#xff0c;namespace 关键字的…...

[golang gin框架] 2.Gin HTML模板渲染以及模板语法,自定义模板函数,静态文件服务

一.Gin HTML 模板渲染全部模板放在一个目录里面的配置方法首先在项目根目录新建 templates 文件夹&#xff0c;然后在文件夹中新建 对应的index.html<!DOCTYPE html> <html lang"en"> <head> <meta charset"UTF-8"> <meta http…...

数据仓库层Repository(CrudRepository、PagingAndSortingRepository、JpaRepository)

什么是数据仓库层Repository&#xff1f; 数据仓库接口的作用&#xff1a;Repository原意指的是仓库&#xff0c;即数据仓库的意思。Repository居于业务层和数据层之间&#xff0c;将两者隔离开来&#xff0c;在它的内部封装了数据查询和存储的逻辑。 Repository接口&#xff…...

大数据技术架构(组件)33——Spark:Spark SQL--Join Type

2.2.2、Join Type2.2.2.1、Broadcast Hash Join (Not Shuffled)就是常说的MapJoin,join操作在map端进行的。场景&#xff1a;join的其中一张表要很小&#xff0c;可以放到Driver或者Executor端的内存中。原理:1、将小表的数据广播到所有的Executor端&#xff0c;利用collect算子…...

Linux: bash起后台进程引发的僵尸进程

1. 前言 限于作者能力水平&#xff0c;本文可能存在谬误&#xff0c;因此而给读者带来的损失&#xff0c;作者不做任何承诺。 2. 案例 原来的故事是 这样 的&#xff0c;感兴趣的读者可以直接前往。我从中截取了一段重现故事中问题的代码&#xff08;对原代码做了小小调整&a…...

网络安全攻防中,Rock-ON自动化的多功能网络侦查工具,Burpsuite被动扫描流量转发

网络安全攻防中&#xff0c;Rock-ON自动化的多功能网络侦查工具&#xff0c;Burpsuite被动扫描流量转发。 #################### 免责声明&#xff1a;工具本身并无好坏&#xff0c;希望大家以遵守《网络安全法》相关法律为前提来使用该工具&#xff0c;支持研究学习&#xff…...

电子技术——共模抑制

电子技术——共模抑制 我们在之前学习过&#xff0c;无论是MOS还是BJT的差分输入对&#xff0c;共模信号并不会改变漏极电流的大小&#xff0c;因此我们说差分输入对共模信号无响应。但是实际上由于各种客观非理想因素&#xff0c;例如电流源有限阻抗等&#xff0c;此时共模是影…...

对KMP简单的理解

声明&#xff1a;下边的例子均表示下标从1开始的数组 ne数组的定义&#xff1a; next[i] 就是使子串 s[1…i] 有最长相等前后缀的前缀的最后一位的下标。ne[i]也可以表示相等子串的长度 准备执行jne[j]时&#xff0c; 表示当前s[i]!p[j1] , 如果ne[j]1 &#xff0c;那么下…...

Hibernate不是过时了么?SpringDataJpa又是什么?和Mybatis有什么区别?

一、前言 ps: 大三下学期&#xff0c;拿到了一份实习。进入公司后发现用到的技术栈有Spring Data Jpa\Hibernate,但对于持久层框架我只接触了Mybatis\Mybatis-Plus&#xff0c;所以就来学习一下Spring Data Jpa。 1.回顾MyBatis 来自官方文档的介绍&#xff1a;MyBatis 是一款…...

数学建模拓展内容:卡方检验和Fisher精确性检验(附有SPSS使用步骤)

卡方检验和Fisher精确性检验卡方拟合度检验卡方独立性检验卡方检验的前提假设Fisher精确性检验卡方拟合度检验 卡方拟合度检验概要&#xff1a;卡方拟合度检验也被称为单因素卡方检验&#xff0c;用于检验一个分类变量的预期频率和观察到的频率之间是否存在显著差异。 卡方拟…...

【Python学习笔记之七大数据类型】

Python数据类型&#xff1a;Number数字、Boolean布尔值、String字符串、list列表、tuple元组、set集合、dictionary字典 int整数 a1 print(a,type(a))float浮点数 b1.1 print(b,type(b))complex复数 c100.5j print(c,type(c))bool布尔值:True、False,true和false并非Python…...

Android系统之onFirstRef自动调用原理

前言&#xff1a;抽丝剥茧探究onFirstRef究竟为何在初始化sp<xxx>第一个调用&#xff1f;1.onFirstRef调用位置<1>.system/core/libutils/RefBase.cpp#include <utils/RefBase.h>//1.初始化强指针 void RefBase::incStrong(const void* id) const {weakref_i…...

ipv6上网配置

一般现在的宽带都已经支持ipv6了&#xff0c;但是需要一些配置才能真正用上ipv6。记录一下配置过程。 当前测试环境为移动宽带&#xff0c;光猫下面接了一个路由器&#xff0c;家里所有的设备都挂到这个路由器下面的。 1. 光猫改桥接 光猫在使用路由模式下&#xff0c;ipv6无…...

python实现聚类技术—复杂网络社团检测 附完整代码

实验内容 某跆拳道俱乐部数据由 34 个节点组成,由于管理上的分歧,俱乐部要分解成两个社团。 该实验的任务即:要求我们在给定的复杂网络上检测出两个社团。 分析与设计 实验思路分析如下: 聚类算法通常可以描述为用相似度来衡量两个数据的远近,搜索可能的划分方案,使得目标…...

如何判断两架飞机在汇聚飞行?(如何计算两架飞机的航向夹角?)内含程序源码

ok&#xff0c;在开始一切之前&#xff0c;让我先猜一猜&#xff0c;你是不是想百度“二维平面下如何计算两个移动物体的航向夹角&#xff1f;”如果是&#xff0c;那就请继续往下看。 首先&#xff0c;我们要明确一个概念&#xff1a;航向角≠航向夹角&#xff01;&#xff0…...

java开发网站的优势/百度人气榜排名

如何去掉默认注释?* window -- Preferences -- Java -- Code Style -- Code Templates* 选择你不想要的内容&#xff0c;通过右边Edit编辑。* 注意&#xff1a;请只删除注释部分&#xff0c;不是注释部分的不要删除。 行号的显示和隐藏* 显示&#xff1a;在代码区域的最左边的…...

wap网站制作软件/上海疫情又要爆发了

1. 基本心态 这些优点共同叠加&#xff0c;那是100分&#xff0c;我要做的是&#xff0c;自测他测评估下自己的分数&#xff0c;但是&#xff0c;但是&#xff0c;但是&#xff0c;不要追求完美&#xff0c;而是依据这个100分的目标去不断优化自己&#xff0c;这是一个长期的复…...

做鸭网站/如何在百度做推广

一.RF之UI自动化测试环境 1&#xff1a;通过pip安装扩展库: pip install robotframework-seleniumlibrary 2.:下载谷歌游览器和对应驱动 https://www.cnblogs.com/loved-wangwei/p/8993013.html 3.将游览器驱动放在python的目录下 比如&#xff1a;我的python安装在D:\install…...

网站可以换虚拟主机吗/知乎推广公司

写在前面&#xff1a;文章里面的图片公式都是逆天一个个打出来画出来的&#xff0c;公式系列基本上都提供了源码 图片基本上不太加水印了&#xff0c;加了的也留了空间可以让你裁剪去水印&#xff0c;这样你引用也比较方便 &#xff5e; 但是还是想说下&#xff1a;”加个参考链…...

网站开发的图片要求/广告公司推广软文

2018.05.05_day111、执行Python脚本的两种方式 第一种&#xff0c;在命令行输入“python 文件名” 第二种&#xff0c;从解释器打开脚本文件&#xff0c;并运行。2、简述位、字节的关系 位是计算机存储的最小单位&#xff0c;一个位要么是“0”要么是“1”&#xff0c;8个位等于…...

韶关做网站需要多少钱/华夏思源培训机构官网

最近对接几家 不同的nvr厂商&#xff0c;有华为 金山立 大华 海康等等。大多数都是直接提供的sdk 直接把so库集成在程序里面即可 唯独华为提供的是HTTP接口 也就是所谓的RESTful方式 但是不是普通的http方式 而是 https方式 之前所有的关于Web服务的交互都是基于http的…...