自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(64)
  • 资源 (27)
  • 收藏
  • 关注

原创 使用海康威视播放库SDK播放视频文件

这里使用OpenCV来创建播放窗口的。

2024-01-18 10:18:09 816

原创 cuda上使用remap函数

如果自己编译的opencv带cuda,最好还是使用cv::cuda::remap函数,耗时较少。

2024-01-11 11:39:03 929 5

原创 cv::Mat转AVFrame相互转换

最近在使用ffmpeg取鱼眼相机的视频流做全景播放时遇到需要cv::Mat转AVFrame的转换,看到了,记录一下。

2024-01-10 16:37:40 960

原创 RootSIFT---SIFT图像特征的扩展

RootSIFT是论文所提出的当比较直方图时,使用欧氏距离通常比卡方距离或Hellinger核时的性能差,但是在使用 SIFT 特征点为什么一直都使用欧氏距离呢?不论是对 SIFT 特征点进行匹配,还是对 SIFT 特征集合进行聚类得到视觉词汇表,又或者对图像进行BoW编码,都使用的是欧氏距离. 但是 SIFT 特征描述子本质上也是一种直方图,为什么对 SIFT 特征描述子进行比较的时候要使用欧氏距离呢,有没有一种更精确的比较方法呢?

2023-10-14 22:05:08 713

原创 Eigen库学习(2)--------------几何模块

视觉SLAM十四讲这本书中Eigen Geometry模块的代码主要是在Eigen中演示四元数、欧拉角、旋转矩阵之间的变换方式。

2022-09-19 20:47:35 392 1

原创 Eigen库学习(1)--------------基础运算

Eigen库的基础运算

2022-09-16 17:49:06 600

原创 C语言中BYTE*指针类型转OpenCV中Mat类型

Mat转BYTE*BYTE*转Mat

2022-07-11 16:35:35 2001

原创 二维点拟合椭圆

椭圆拟合求中心点

2022-07-11 09:36:39 452

原创 《OpenCV4快速入门》------函数摘要

看《OpenCV4快速入门》这本书里面的函数摘要

2022-07-06 11:28:34 874

原创 生成棋盘格(标定板图片)

生成棋盘格的程序,用于相机标定

2022-06-30 09:39:50 5960 1

原创 管道全景量化机器人(一)

工作记录

2022-06-28 18:54:01 74

原创 学习鱼眼相机的总结

最近在做一个和鱼眼相机相关的项目,因此记录一下学的的相关的内容

2022-06-24 17:33:41 1850

原创 C++核心编程------4.类和对象

封装封装的意义//圆周率const double pi = 3.14;//设计一个圆类,求圆的周长//求圆的周长公式:2*pi*半径class Circle{ //访问权限 //公共权限public: //属性 //半径 int m_r; //行为 //获取圆的周长 double calculate() { return 2 * pi * m_r; }};int main(){ //通过圆类 创建具体的圆 Circle c1; //给圆对象的属性进行赋值

2022-04-09 19:26:32 327 1

原创 UDP协议实现简单的通信 C++

1、IP地址网络中的计算机使用IP地址来进行唯一标识,IP地址有IPv4和IPv6两种类型。IPv4采用十进制或二进制表示形式,十进制是一种比较常用的表示形式,如192.168.1.131,IPv6采用十六进制表示形式,一般不常用。如何查看IP地址相关信息:在Windows系统下,打开cmd,输入命令ipconfig,按回车即可查看。在Linux或Mac系统下,打开终端,使用ifconfig命令,按回车即可查看。2、端口号端口号是计算机中的应用程序的一个整数数字标号,用来区分不同的应用程序。0

2022-02-20 11:26:51 6056 1

原创 vector元素中提取重复次数最多的元素,并删除它

#include<iostream>#include<vector>#include<map>using namespace std;int main(){ int n; cin >> n; vector<int> arr(n); map<int, int>m; for (int i = 0; i < n; i++) { cin >> arr[i]; m[arr[i]]++; } i

2022-02-19 18:37:36 1191

原创 OpenCV获取网络摄像头实时视频流

1、RTSP协议RTSP (Real Time Streaming Protocol),是一种语法和操作类似 HTTP 协议,专门用于音频和视频的应用层协议。 和 HTTP 类似,RTSP 也使用 URL 地址。同时我们也要了解到摄像机传输数据用的是码流,高清网络摄像机产品编码器都会产生两个编码格式,称为主码流和子码流。这就叫双码流技术。目的是用于解决监控录像的本地存储和网络传输的图像的质量问题。双码流能实现本地和远程传输的两种不同的带宽码流需求,本地传输可以用主码流,能获得更清晰的存储录像,远程传输就因

2022-02-15 18:09:46 4708

原创 Camera Calibration and 3D Reconstruction

double cv::calibrateCamera (InputArrayOfArrays objectPoints, InputArrayOfArrays imagePoints, Size imageSize, InputOutputArray cameraMatrix,

2021-12-25 22:10:50 719

原创 相机标定(二)

#include<opencv2/core/core.hpp>#include<opencv2/imgproc/imgproc.hpp>#include<opencv2/calib3d/calib3d.hpp>#include<opencv2/highgui/highgui.hpp>#include<iostream>#include<fstream>#include<vector>using namespa

2021-11-16 16:41:00 2164

原创 相机标定(一)

相机标定基本概念畸变相机参数相机标定流程相机模型坐标系坐标系转换畸变模型相机标定流程如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入基本概念畸变通常畸变分为两种,径向畸变和切向畸变。相机参数相机矩阵:焦距(fx,fy),光学中心(Cx,Cy),是相机的固有属性

2021-11-16 16:16:45 2861

原创 视频智能检索技术服务项目

针对新闻、专题(如人物介绍、装备介绍)等视频,可从一段视频中提取出视频帧、关键帧,生成图片;针对关键帧,可提取出字幕信息,并转换成文字。项目视频检索软件要求1具有解析视频为连续视频帧、采样视频帧的功能;2给出关键帧在视频帧中的位置;3将关键帧或者视频帧按照需求保存为bmp,jpg,png格式;4在保存的关键帧或视频帧图像中定位出字幕的位置,并将字幕转换成文字输出,关键帧字幕定位的准确率>=75%,关键帧字幕转文字的精准率>=75%.一、具有解

2021-11-16 15:45:35 2755

原创 opencv3--斑点检测simpleBlobDetector

基于局部极值的分水岭算法斑点检测simpleBlobDetector分为以下几步:  1.对一张图片,设定一个低阈值minThreshold,设定一个高阈值maxThreshold,在设定一个阈值步进thresholdStep,然后从低阈值到高阈值按照阈值步进取一系列的阈值,即对[minThreshold,maxThreshold)区间,以thresholdStep为间隔,用每一个阈值对图像进行二值化,得到一系列图像;  2.对每张二值图片,使用findcontours查找这些图像的边,并计算每一个轮

2021-11-12 10:57:21 1885

原创 KeyPoint 和 point2f相互转换

KeyPoint 转point2fvoid KeyPointsToPoints(vector<KeyPoint> kpts, vector<Point2f> &pts){ for (int i = 0; i < kpts.size(); i++) { pts.push_back(kpts[i].pt); }}point2f 转KeyPointvoid PointsToKeyPoints(vector<Point2f>pts,vector&

2021-11-02 16:15:47 1358

原创 opencv中精度转换

convertTo函数使用opencv常常会需要用到数据类型之间的转换,此时需要使用convertTo函数.代码: Mat m1 = Mat(3, 1, CV_32F, Scalar(1)); Mat m2; m1.convertTo(m2, CV_64F);

2021-10-12 15:55:52 503

原创 数据类型转换--Mat与Vector<Point2f>

一、数据转换1、Mat——>vector<Point3f>:Mat m;vector<Point3f> p;p=Mat_<Point3f>(m)2、vector<Point3f> ——> Mat:vector<Point3f> p;Mat m=Mat(p);3、vector<Point3f> ——> vector<vector<Point3f>>vector<Poin

2021-10-12 15:43:14 4933

原创 OpenCV创建Mat的几种方式

1,#include<iostream>#include<opencv2/opencv.hpp> using namespace std;using namespace cv; int main(){ //创建一个2*2 类型为32位的浮点型三通道的矩阵 //前面两个参数是创建矩阵的行和列 //第三个参数是创建矩阵的类型 //第四个参数是填充矩阵的数值 Mat img(2, 2, CV_32FC3, Scalar(0, 255, 255)); cout &

2021-10-12 11:44:18 2984

原创 C++创建文件夹的几种方式

1.使用direct.h头文中的_mkdir函数#include <direct.h>#include <iostream>using namespace std;int main(){ string folderPath = "E:\\test"; if (0 != _mkdir(folderPath.c_str())) { // 返回 0 表示创建成功,-1 表示失败 _mkdir(folderPath.c_str()); } retur

2021-09-10 11:18:08 9034

原创 MP4(AVI)视频转jpg(png)图片

1.定义宏每隔几帧保存一帧#define interval 42.读取视频 VideoCapture capture("E:/vs2017/mp4转jpg/mp4转jpg/video/video1.mp4");3.判断视频是否被打开if (!capture.isOpened()) { return -1; }4.把视频内容写入Mat里 Mat frame; capture >> frame;5.写入图像 int imgIndex = 0; whi

2021-09-08 10:23:13 3557

原创 C++ opencv基于帧差法的关键帧提取

读取视频 VideoCapture cap; //视频路径 cap.open("test.mp4"); //如果视频不能正常打开则返回 if (!cap.isOpened()) { cout << "cannot open video!" << endl; return 0; } Mat frame_key; cap >> frame_key; //定义当前帧 frame_key=currentFrame long currentFr

2021-09-07 18:29:20 1231

原创 使用Paddle进行OCR文字识别(一)Cmake编译

一.使用Cmake进行编译在Paddle官网选择合适的版本下载源代码,这里我使用的是Paddle2.0-rc1-0:https://github.com/PaddlePaddle/PaddleOCR/tree/release/2.0-rc1-0下载后解压,我是放在E盘里的,虽然打开E:>>PaddleOCR-release-2.0-rc1-0>>deploy>>cpp_infer在cpp_infer文件夹里新建build文件夹打开cpp_infer文件夹下的C

2021-09-07 11:14:02 2771

原创 使用lut表替换图片中的像素

使用lut图来替换lena图里的像素简单的来讲就是把lut图里的像素值x通过映射到图片lena中的像素值y#include <opencv2/opencv.hpp>#include <iostream>using namespace cv;using namespace std;int main(int argc, const char *argv[]){ //读取原图像,1b代表1个通道,0代表灰度图像 Mat1b src = imread("E:\\vs201

2021-09-01 18:18:54 308

原创 图像处理的基础操作

Sobel边缘检测Mat Sobel_abs(Mat&src){ Mat grad_x, grad_y; Mat abs_grad_x, abs_grad_y, dst; //获取x方向梯度图 Sobel(src, grad_x, CV_16S, 1, 0, 3, 1, 1, BORDER_DEFAULT); convertScaleAbs(grad_x, abs_grad_x); //获取y方向梯度图 Sobel(src, grad_y, CV_16S, 0, 1, 3, 1,

2021-09-01 18:10:37 80

原创 一张图片分割若干部分

std::vector<std::vector<Mat> > partitionImage(Mat&src, int rows, int cols){ std::vector<std::vector<Mat> > array(rows, std::vector<Mat>(cols)); int irows = src.rows, icols = src.cols;//原图像的行数、列数 int dr = irows / rows,

2021-09-01 17:13:56 177

原创 读取文件路径中的图片

读取文件夹中的所有图像#include <opencv2/opencv.hpp>#include <iostream>using namespace std;using namespace cv;int main() { //用void glob(String pattern, std::vector<String>& result, bool recursive = false);当recursive为false时,仅仅遍历指定文件夹内符合模式的文件

2021-08-25 16:01:24 277

原创 FFMpeg提取视频关键帧

1. FFMpegSDK下载下载FFMpegSDK,我在官网上找了好久,现在应该在官网上下载不了,于是就在CSDN上使用积分下载了一下,下载链接:下载解压后:把shared里面的bin文件复制到dev文件中bin文件中的.dll文件复制后的dev文件2. 建立vs工程建立头文件配置属性页>>VC++目录>>包含目录配置属性页>>VC++目录>>库目录把刚才的dev中include路径和lib路径分别放入包含目录和库目录中。配

2021-08-25 13:36:09 3446

原创 SIFT图像拼接,把双目相机拍摄的图像从左图变成右图

ImageMosaic.h#ifndef IMAGE_MOSAIC_H#define IMAGE_MOSAIC_H#include <iostream>#include<opencv2/highgui/highgui.hpp>#include<opencv2/imgproc/imgproc.hpp>#include <opencv2/opencv.hpp> #include<opencv2/xfeatures2d.hpp>#inc

2021-07-30 10:51:53 841 3

原创 图像复原——维纳滤波

Matlabmain函数clcclearIi=imread('Ii','bmp');psf=imread('psf','bmp');recovery=ima_restoration(Ii,psf,0.1);figure;imagesc(recovery);axis square;ima_restoration函数function [ recovery ] = ima_restoration(Ii,psf,a)H=newfft2(psf);H=H./max(max(H));Gi

2021-07-23 17:26:52 1278

原创 C++核心编程--------2.引用

引用引用的基本使用作用:给变量起别名语法:数据类型 &别名=原名

2020-12-10 19:02:17 75

原创 C++核心编程-------1.内存分区模型

内存分区模型C++程序在执行时,将内存大方向划分为4个区域●代码区:存放函数体的二进制代码,由操作系统进行管理的●全局区:存放全局变量和静态变量以及常量●栈区:由编译器自动分配释放,存放函数的参数值,局部变量等●堆区:由程序员分配和释放,若程序员不释放程序结束时由操作系统回收内存四区意义:不同区域存放的数据,赋予不同的生命周期,给我们更大的灵活编程程序运行前在程序编译后,生成了exe可执行程序,未执行该程序前分为两个区域代码区:存放CPU执行的机器指令代码区是共享的,共享的目的是对

2020-11-17 10:52:35 218

原创 C++基础入门-------通讯录管理系统

嵌入式系统,英文全称为Embeded System。IEEE的定义:嵌入式系统是“控制、监视或者辅助装置、机器和设备运行的装置"业界普遍采用的定义:嵌入式系统是以应用为中心、以计算机技术为基础、软件硬件可裁剪、适应应用系统对功能、可靠性、成本、体积、功耗等严格要求的专用计算机系统。嵌入式系统的基本结构嵌入式系统可以笼统地分为硬件和软件两部分。...

2020-11-16 15:30:50 69

原创 C++基础入门------7.结构体

结构体结构体定义和使用语法:struct 结构体名 { 结构体成员列表 };通过结构体创建变量的方式有三种:.struct 结构体名变量名struct结构体名变量名={成员1值,成员2…}定义结构体时顺便创建变量//创建学生数据类型:学生包括(姓名,年龄,分数)struct Student{ //成员列表 //姓名 string name; //年龄 int age; //分数 int score;};int main(){ //结构体变量创建方式1 st

2020-11-13 19:09:26 290

ffmpeg4.0.2库

ffmpeg4.0.2版本的库,windows环境下的x64以及win32版本的动态链接库和静态链接库

2024-01-18

opencv4.8.1的源码和opencv-contrib以及.cache文件

opencv4.8.1+opencv_contrib4.8.1+cuda+cudnn使用CMake和vs2019编译时.cache文件夹里的文件以及opencv4.8.1和opencv_contrib4.8.1的源码,github下载可能下载不成功

2023-12-06

opencv4.8.0的源码和opencv-contrib以及.cache文件

opencv4.8.0+opencv_contrib4.8.0+cuda+cudnn使用CMake和vs2019编译时.cache文件夹里的文件以及opencv4.8.0和opencv_contrib4.8.0的源码,github下载可能下载不成功

2023-12-06

windows版本的cuda10.2+cudnn7.6.5,yolo需要下载

使用yolo时需要使用cuda,但是官网里的cuda10.2配套的cudnn7现在找不到,如果使用cudnn8会出现许多问题,现在这个是之前下载的,这里只有CUDNN7.6.5

2023-09-19

Eigen3库编译资源

Eigen3库虽然可以不编译,但是我为了编译Ceres库还是把Eigen库编译了一下,Eigen库编译不会生成动态链接库,只会有include文件和share文件,主要是使用include文件中的eigen3文件夹

2022-09-16

win10+vs2019+opencv4.5.5+opencv_contrib

以前编译的opencv4和opencv_contrib的库,由于之前的库全是vs2017编译的

2022-09-02

win10+VS2019+CMake+ceres+eigen+gflags+glog+suitesparse编译

最近在学习ceres,以前是用vs2017编译的,昨天测试的时候发现使用vs2019竟然不能使用的重新编译,因此使用vs2019重新编译了一下ceres、eigen、gflags、glog、suitesparse的源码,整了一天才编译成功,真的挺难的,希望以后没有难编译的库,上传csdn以后再也不编译这几个库了

2022-09-02

单目相机标定程序.zip

C++ opencv相机标定

2021-11-16

opencv编译文件e8d0dcd54d1bcfdc29203d011a797179-vgg_generated_48.i

e8d0dcd54d1bcfdc29203d011a797179-vgg_generated_48.i

2021-10-28

C++ opencv 关键帧提取

C++ opencv 关键帧提取

2021-09-07

paddle_inference.zip

paddle_inference.zip

2021-09-07

PaddleOCR modle.zip

PaddleOCR modle.zip

2021-09-07

PaddleOCR-release-2.0-rc1-0.zip

PaddleOCR-release-2.0-rc1-0.zip

2021-09-07

FFMpeg关键帧提取

使用FFMpeg进行关键帧提取

2021-08-25

FFMpeg-SDK4.2 win64

FFMpeg-SDK4.2 win64里面有dev和shared两个

2021-08-25

视频格式转视频帧程序。

vs2017+opencv4.5

2021-08-20

深信服学习资料--网络基础1.zip

深信服学习资料--网络基础1.zip

2021-08-19

lut表实现灰度像素替换

用C++和opencv使用lut表来替换灰度图像像素,进行伪色彩变换

2021-08-02

opencv4.5.1+vs2017+win10+cuda+编译

opencv4.5.1+vs2017+win10+cuda+编译

2021-07-26

opencv-3.1.0.zip

opencv3.1.0+vs2013+cuda+编译

2021-07-26

cuda_11.1+cudnn11.3安装包

win10 x64 cuda11.1 cudnn11.3安装包

2021-06-21

opencv-4.51 +opencv_contrib4.5.1

安装包

2021-06-21

三维家3D云设计软件 32位2.0.2官方版和64位2.0.2官方版

三维家3d云设计软件是一款由三维家推出的桌面3d云设计客户端,用户可以非常方便的在桌面上通过客户端进行家装云设计。

2020-10-20

LSM6DS3六轴惯性传感器.pdf

LSM6DS3六轴惯性传感器(加速度、陀螺仪)模块的中文版使用手册。

2019-08-06

STM32F4xx固件库.rar

STM32F4系列完整固件库源代码,有需要的同学可以参考参考。

2019-07-09

opencv_contrib3.4.0+vs2017+win10+opencv3.4.0

本资源是使用CMake编译的opencv3.4.0和opencv_contrib3.4.0,编译环境是vs2017和win10,下载后正常配置就能使用

2019-05-17

MSER候选车牌区域检测

本程序的编写环境为VS2017和win10,是用最大值稳定区域匹配MSER提取方法来进行编写的,通过MSER+和MSER-来提取目标图像的

2019-04-04

基于MATLAB的车牌识别系统设计

本资源是用MATLAB来进行编写的,可以随意根据一张带有车牌的图片,把里面的车牌信息识别,并根据提供的库来对比,输出具体的数字出来

2019-04-04

基于Python的飞机小游戏

本资源是使用Python进行编写的打飞机的小游戏,也可以根据自己的需要进行改变功能

2019-04-04

基于canny算子的边缘检测

本代码开发环境为VS2017+win10,使用opencv里自带的canny算子进行的边缘检测,下载后能直接运行的。

2019-04-04

基于opencv的颜色识别

使用VS2017和win10编译环境,文件夹里有三种颜色识别的方法,在vs2017中能直接打开运行。

2019-03-28

基于MATLAB的人脸识别

本资源时基于MATLAB的人脸识别,内有MATLAB代码,下载后可直接运行,附编译的教程和orl人脸库。代码可实现从人脸库选择任意一张照片,进而检测出是第几个人。

2019-03-28

车牌区域检测

使用vs2017+win10 找一张带有车牌的汽车图片,运行代码即可切割出图片中车牌区域。

2019-03-28

圆形检测算法 MATLAB

可以直接在MATLAB软件上打开运行使用,不需要改程序之类的,是使用C++语言使用的

2018-11-05

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除