
OpenCv
蒋程扬
古月居签约作者,古月学院《如何开发一个ROS人机交互软件》原创作者。联系方式:chengyangkj@qq.com
展开
-
解决ROS编译安装Opencv项目出现undefined Reference to....问题
一,问题描述已经编译安装了Opencv,但是编译Opencv功能包时出现undefined Reference to…的错误二,解决方法这一般是由于多个Opencv环境冲突的问题,比如我这里编译安装Opencv3.3.1版本则需要通过以下命令安装:unzip opencv-3.3.1.zip cd opencv-3.3.1mkdir buildcd buildcmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/loc原创 2020-07-10 13:52:32 · 8167 阅读 · 3 评论 -
opencv视频拆分为图片帧,帧合成视频(mp4,avi)软件,附完整项目
项目需要,对视频进行处理,需要将视频拆分为图片帧,拆帧分为三种模式:自定义拆帧(指定开始时刻和结束时刻,并拆分为图片帧)等长拆帧 (间隔一定时长,将每段时长视频帧进行拆分)截取单帧 (截取某个时刻的画面帧)视频合成 (将某一文件夹下的图片合成为视频支持avi,mp4)一,加载视频二,自定义拆帧三,等时长拆帧四,截取单帧五,帧合成视频六,完整项目g...原创 2020-05-04 16:51:27 · 4186 阅读 · 1 评论 -
opencv使用stitching实现全景拼接
项目中需要使用opencv实现图像的全景拼接,网上找的许多自己实现的算法,最后发现opencv自带的有stitching.hpp可以进行实现,还能使用GPU进行加速,以下是代码:#include <fstream> #include "opencv2/highgui/highgui.hpp" #include "opencv2/stitching.hpp" #include &...原创 2020-01-08 16:20:04 · 1626 阅读 · 5 评论 -
QT+Opencv重写label控件,在label上画框,截图功能,实现对视频的ROI区域的截取(含完整项目代码)
QT+Opencv实现对视频的ROI区域的截取(保存为新的视频)网上有许多对QT label重写,实现在label图片上画框,但是都是部分代码,我这里含有完整的代码,方便理解功能:打开视频,获取视频的基本信息和第一帧用户通过截取矩形,截取ROI感兴趣区,点击确定合成新的只有感兴趣区的视频帧固定大小放置在窗口,简单的截取会导致图片失真,所以实际获取的坐标为按照比例,在真实图片上的坐标...原创 2019-08-07 18:28:49 · 4748 阅读 · 8 评论 -
基于Opencv+QT的视频播放器(实现进度条功能,播放暂停快进功能)
项目需要实现类似这个功能,可是在网上找了许多用opencv实现的,但是都是简单的能使用一个死循环播放,没有进度条等功能,于是自己动手写了下配置好qt和opencv环境后点击.pro文件导入项目,即可进运行功能:实现进度条拖拉拽视频播放暂停视频快进慢放视频的片段拆分为图片帧效果图:核心代码:灵活控制循环,实现播放,暂停,快进慢放功能话不多说,上代码:github...原创 2019-08-07 10:46:04 · 6450 阅读 · 1 评论 -
opencv截取任一时间段的视频帧
videocapture.set()我们使用opencv进行读取视频帧的时候都是从开始进行读的,可是我们应该如何从任意帧或者时间进行开始读呢?我们可以通过videocapture.set方法:VideoCapture::set(int id,double value)0 CV_CAP_PROP_POS_MSEC Current position of the video file in...原创 2019-07-11 13:54:41 · 2833 阅读 · 0 评论 -
linux QT opencv的编译安装及qt的安装
一,QT的安装配置1.1安装一些依赖的软件包g++:sudo apt-get install build-essential其他:sudo apt-get install libX11-dev libXext-dev libXtst-devsudo apt-get install libx11-dev libxau-devlibxaw7-dev libxcb1-dev libxco...原创 2019-04-27 20:46:14 · 744 阅读 · 0 评论 -
完美解决opencv级联分类器训练过程中报错:Image reader can not be created from -vec F:\opencv\InputIm
这个问题可能是opencv的一个bug,说找不到负样本的描述文件,可是地址也写对了啊,这时候只需要把负样本和描述文件放到训练器的同一目录下就行了:当然-bg的地址要写为:-bg bg.txt...原创 2019-03-24 19:33:51 · 1702 阅读 · 0 评论 -
opencv-019-Haar,LBP级联分类器的训练
级联分类器就是通过一步步过滤图片的特征,经过第一个分类器如果不满足图片的此级联特征就判断该图片不为目标值,如果满足该特征,则继续往下通过另一个或多个分类器进行判断,这就是级联分类器的基本原理 HAAR特征数据 LBP特征数据 数据格式XMLHAAR与LBP的区别HAAR特征是浮点数计算LBP特征是整数计算LBP训练需要的样本数量要比HAAR大同样的样本空间,HAAR训练出来...原创 2019-03-24 19:29:50 · 1417 阅读 · 0 评论 -
OpenCv-007-绘制图像与文字
一,绘制文字 putText第一个参数传入要绘制的图片 第二个为添加的文字 第三为中心点的坐标 第四个为字体样式 字体粗细 字体颜色 putText(bgImg, "hello opencv", Point(200, 300), CV_FONT_BLACK, 1.0, Scalar(0, 255, 255), 1, 8);二,绘制线通过Point设置两个点坐标,传入起始点坐标和终止点坐标...原创 2019-01-20 15:31:02 · 327 阅读 · 0 评论 -
OpenCv-006-调整亮度和对比度
调整亮度和对比度就是对每个相元进行操作,乘于一定的参数根据方程:其中α就是要提高的对比度,β为亮度循环遍历每个操作完成对比度和亮度的提高:for (int row = 0; row < height; row++) { for (int col = 0; col < width; col++) { if (src.channels() == 3) { flo...原创 2019-01-20 15:21:24 · 608 阅读 · 0 评论 -
OpenCv-005-图像融合
一,调用系统api进行融合 addWeighted其中有一个参数 alpha 代表合成程度并且在合成之前要确认两个图片的类型和大小必须相同addWeighted(src1, alpha, src2, (1.0 - alpha), 0.0, dst);二,案例演示#include <opencv2\opencv.hpp>#include <iostream>...原创 2019-01-20 15:13:25 · 294 阅读 · 0 评论 -
OpenCv-004-图像操作(反差图像)
一,读取图像Mat src, gray_src; src = imread("F:/opencv/InputImg/h4.jpg"); if (src.empty()) cout << "图像打开失败" << endl; namedWindow("input", CV_WINDOW_AUTOSIZE); imshow("input img", src);二,反原创 2019-01-20 10:43:57 · 606 阅读 · 1 评论 -
OpenCv-003-Mat对象
Mat对象在opencv中主要用来存储图片一,读取一张图片 Mat src; src = imread("F:/opencv/InputImg/h4.jpg"); if (src.empty()) { cout << "文件打开失败!" << endl; return -1; } namedWindow("input img", CV_WINDOW_AU...原创 2019-01-20 10:32:09 · 190 阅读 · 0 评论 -
OpenCv-002-矩阵的掩膜操作
所谓的掩膜就是用选定的图像、图形或物体,对处理的图像(全部或局部)进行遮挡,来控制图像处理的区域或处理过程。用于覆盖的特定图像或物体称为掩模或模板。光学图像处理中,掩模可以足胶片、滤光片等。数字图像处理中,掩模为二维矩阵数组,有时也用多值图像。数字图像处理中,图像掩模主要用于:提取感兴趣区,用预先制作的感兴趣区掩模与待处理图像相乘,得到感兴趣区图像,感兴趣区内图像值保持不变,而区外图像值都为...原创 2019-01-20 10:23:19 · 1053 阅读 · 1 评论 -
OpenCv-001-读取存储图片
基础是以C++开始学起,OpenCv主要用在图片处理方面,图片的本质就是矩阵。以行列为序,每个矩阵单元存储三个值,R,G,B,通过遍历每个像素元,处理图片一,引入opencv头文件#include <opencv2\opencv.hpp>二,通过imread通过图片路径读取图片1,读取进来的图片作为Mat对象Mat src = imread("F:\\opencv\\Inp...原创 2019-01-20 09:42:54 · 845 阅读 · 0 评论