![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
opencv
opencv
不脱发的码农~~~~
发呆
展开
-
基于OpenCV实现口罩识别
opencv转载 2022-07-02 21:55:14 · 1021 阅读 · 3 评论 -
How_to_setup_Qt_and_openCV_on_Windows
https://wiki.qt.io/How_to_setup_Qt_and_openCV_on_Windows原创 2022-03-21 14:17:42 · 4384 阅读 · 0 评论 -
C++ opencv入门学习
图像和视频数据的读取图像数据通过imread(path)来读取矩阵数据,视频是通过VideoCapture返回一个视频的输入流,从而可以一帧一帧的读取图像。 正如python中opencv通过numpy存储数据,c++中的图像数据通过一个简陋的矩阵类Mat类来存储图片数据。int show_img(string &img_path) { Mat src = imread(path, 1); if (src.empty()) { printf("open pic f转载 2022-03-20 19:53:01 · 1727 阅读 · 0 评论 -
c++ Opencv物体检测封装(级联训练分类器方式检测)
class Cascade{public: Cascade() { } bool load_cascade() { return cascade.load(m_cascadexml); } void setCascade(string cascade) { m_cascadexml=cascade; } string getCascade() { return m_c原创 2022-03-20 11:24:25 · 3003 阅读 · 0 评论 -
Opencv获取视频时长相关信息以及控制播放
int OpencvHelp::getTotalFrame(){ if(m_cap) return (int)ceil(m_cap->get(CV_CAP_PROP_FRAME_COUNT)) ;}int OpencvHelp::getFps(){ if(m_cap) return (int)ceil(m_cap->get(CV_CAP_PROP_FPS));}void OpencvHelp::setPosPlay(int va原创 2022-03-18 11:06:29 · 3112 阅读 · 0 评论 -
OpenCV图像处理--获取图像属性
原图:获取图像常用属性通过调用Mat类的公有成员变量,可以获取图像的标志位、尺寸、行高、列宽、图像维度等常用属性。Mat类矩阵类型说明Mat类矩阵类型可以是CV_8UC3、CV_16SC1…CV_64FC3等。里面的8U表示8位无符号整数(0255),16S表示16位有符号整数(-3276832767),64F表示64位浮点double类型数据,C后面的数表示通道数,例如C1表示一个通道的图像,C3表示3个通道的图像。通道一般只有1、3、4,1个通道表示灰度图(0-255),3个通道为RGB转载 2022-01-17 11:07:10 · 247 阅读 · 0 评论 -
OpenCV3+Qt5安装及配置
Qt5的安装这里就不说了,只说opencv3的编译、配置到Qt5及如何使用。说明:本文参考了大神的文章:http://blog.csdn.net/sinat_36264666/article/details/73200739,在此表示感谢。本文只为记录自己的学习历程以及心得归纳总结,如果能帮到其他人也甚感欣慰。在按照本文进行配置之前,有下载opencv3.3.1安装,之后一直测试失败,寻找各种解决办法。初次...转载 2021-11-11 09:15:29 · 361 阅读 · 0 评论 -
似乎只需要在cpp文件 #include<opencv2\opencv.hpp> 就可以调用opencv里面所有的函数或者说函数接口了?
似乎只需要在cpp文件 #include<opencv2\opencv.hpp> 就可以调用opencv里面所有的函数或者说函数接口了?因为我看了下《OpenCV4快速入门》里面的cpp文件都是这样这么看来opencv库用起来还是挺方便的。这个说opencv.hpp已经include了opencv各个模块的头文件了。https://blog.csdn.net/qq_43625313/article/details/87449318...转载 2021-11-07 08:47:04 · 325 阅读 · 0 评论 -
OPENCV API 中文手册
http://www.opencv.org.cn/opencvdoc/2.3.2/html/doc/tutorials/tutorials.html转载 2021-11-07 08:44:00 · 2540 阅读 · 0 评论 -
opencv设置摄像头分辨率
你想要设置成的新值。例如,我可以使用 cap.get(3) 和 cap.get(4) 来查看每一帧的宽和高。默认情况下得到的值是 640X480。但是我可以使用 ret=cap.set(3,320)和 ret=cap.set(4,240) 来把宽和高改成 320X240。原创 2021-11-05 15:37:27 · 3582 阅读 · 0 评论 -
haarcascades---各种分类器xml文件下载地址
https://github.com/opencv/opencv/tree/master/data/haarcascades转载 2021-10-23 14:18:56 · 1188 阅读 · 0 评论 -
OpenCV之识别自己的脸——C++源码放送
OpenCV之识别自己的脸——C++源码放送前言 在将近一年之前,我在CSDN专栏《OpenCV实践之路》中连续发了三篇博客,完整地描述了基于OpenCV进行人脸识别的全过程。三篇都将近一万的阅读量和大量的评论的表明,人脸识别果然是大家在学习OpenCV过程中最感兴趣的课题,之一。当然,也有可能是本科生毕设老师最感兴趣的课题之一。。。 由于当时写的时候是按照前后流程来的,所以源码比较分散。加之我想当然地认为,很多源码是之前博客中已经放出来的,可以一句带过。这导致了很多同学学习的时候很不方面。但是我由于转载 2021-10-13 20:06:39 · 315 阅读 · 4 评论 -
OpenCV——Cascade,训练自己的数据
首先,在任意地方新建traning文件夹,拷贝D:\Program Files\opencv\opencv\build\x86\vc10\bin中opencv_createsamples.exe和opencv_traincascade.exe到training中。1 构建正负样本在training目录下新建pos和neg文件夹将归一化之后的样本放入文件中,pos(正样本 ) neg(负样本)pos进入pos文件下,shift+右键,进入命令行窗口,输入 dir/b>pos.txt (生成相转载 2021-10-13 09:40:02 · 1219 阅读 · 0 评论 -
opencv Haar+AdaBoost分类器+Cascade
写的很乱,仅供自己做笔记使用吧。。。。。。。。 1-以Haar为始,Haar各种特征示例: 每一个小黑白块就是一种规则,...转载 2021-10-05 18:20:16 · 1793 阅读 · 0 评论 -
OpenCV实践之路——人脸检测(C++/Python)
之前一直觉得人脸检测是非常麻烦的,即使是用opencv,麻烦到我都不敢去碰。这两天仔细看了下,如果只是调用opencv自带的分类器和函数的话,简直是简单。这不,正好最近也在学习Python,索性就用C++和Python两种语言都实现一下。当然,我现在这个是最简单的版本。步骤:调用opencv训练好的分类器和自带的检测函数检测人脸人眼等的步骤简单直接:1.加载分类器,当然分类器事先要放在工程目录中去。分类器本来的位置是在*\opencv\sources\data\haarcascades(harr分类器转载 2021-10-05 10:57:50 · 609 阅读 · 0 评论 -
OpenCV鼠标滑轮事件
鼠标的滑轮事件实现图像的缩放很方便,具体在回调函数中如下写:其中scale可以在外部定义为全局变量,通过响应CV_EVENT_MOUSEWHEEL滑轮事件获取Scale的具体值。获取Scale值需要关注两个问题,滑轮滑动的方向和滑动量的大小。滑动方向通过getMouseWheelDelta(flags)获取,当返回值>0时,表示向前滑动;当返回值<0时,表示向后滑动。滑动量根据滑动方向自行设置相应的滑动步长即可。void onMouse(int event, int x, int y, int fla转载 2021-09-22 08:47:06 · 719 阅读 · 0 评论 -
OpenCV学习——Mat,图像的新容器
自从版本2.0,OpenCV采用了新的数据结构,用Mat类结构取代了之前用extended C写的cvMat和lplImage,更加好用啦,最大的好处就是更加方便的进行内存管理,对写更大的程序是很好的消息。需要注意的几点:Mat的拷贝只是复制了Mat的信息头,数据的指针也指向了被拷贝的数据地址,而没有真正新建一块内存来存放新的矩阵内容。这样带来的一个问题就是对其中一个Mat的数据操作就会对其他指向同一块数据的Mat产生灾难性的影响。2.建立多维数组的格式是这样的 int sz[3] = {2,转载 2021-09-17 16:39:44 · 231 阅读 · 0 评论 -
opencv绘制形状与文字
一、绘制形状与文字的模板类:1、Point模板类(二维):解析:为了描述图像中的点,opencv提供了由坐标“x”和“y”指定的 二维点 的模板类,该类的一个实例可以与C结构、CvPoint和CvPoint2D32f互换。有也是一个cast操作符,用于将点坐标转换为指定类型。从通过舍入将浮点坐标转换为整数坐标。通常,转换对每个坐标使用此操作 pt1 = pt2 + pt3; pt1 = pt2 - pt3; pt1 = pt2 * a; pt1 = a * pt2; p转载 2021-09-11 10:11:00 · 324 阅读 · 0 评论 -
opencv图像操作——图像模糊
一、模糊理论(Fuzzy Theory) 模糊理论(Fuzzy Theory)是指用到了模糊集合的基本概念,或连续隶属度函数的理论。它可分类为模糊数学,模糊系统,不确定性和信息,模糊决策,模糊逻辑与人工智能这五个分支,它们并不是完全独立,它们之间有紧密的联系。例如,模糊控制就会用到模糊数学和模糊逻辑中的概念。从实际应用的观点来看,模糊理论的应用大部分集中在模糊系统上,尤其集中在模糊控制上。也有一些模糊专家系统应用于医疗诊断和决策支持。由于模糊理论从理论和实践的角度看仍然是新生事物,所以我们期望,随转载 2021-09-11 10:00:25 · 933 阅读 · 0 评论 -
《学习opencv》第四章第四题
读入并显示视频文件,创建两个滑动条:1 控制视频播放位置,以10为步长跳进2 控制视频的停止、播放代码:// chapter4_4.cpp : 定义控制台应用程序的入口点。// #include "stdafx.h"#include<cv.h>#include<highgui.h> int g_slider_Position = 0;//两个滑动条的初始位置int g_slider_Position1 = 0; CvCapture *g_capture =转载 2021-09-08 08:49:51 · 147 阅读 · 0 评论 -
QT+Opencv实现人脸检测与性别识别(1)
seetaface开源人脸检测框架实现人脸检测,opencv+dnn模块实现性别分类,qt做显示界面,完成一个课程设计。 依赖库:opencv3.1+ 包含dnn模块,QT5 1.性别分类网络训练 1.1.训练数据准备 下载lfw人脸数据库,由于原始数据集未提供性...转载 2021-09-08 08:50:17 · 488 阅读 · 0 评论 -
opencv读取网络图片
#include <iostream>#include <opencv2/opencv.hpp>using namespace std;using namespace cv;int main(){ VideoCapture videoCapture("https://gimg2.baidu.com/image_search/src=http%3A%2F%2Fjunshi-pic.china.com%2Fhandcover%2F202101%2F27%2F1611转载 2021-09-02 15:43:56 · 1028 阅读 · 0 评论 -
OpenCV .直方图均衡 CLAHE算法学习
前言 图像识别工程开发中需要增强图像对比度,便于后续处理,接触到了CLAHE(Contrast Limited Adaptive Histogram Equalization),记录一下其中的学习过程。1.直方图均衡1.1灰度直方图 灰度图中像素值的分布为0-255,以灰度值为横坐标,纵坐标为该灰度值对应的像素点数目/比例,则得到了灰度图像的直方图,体现的是图像中灰度的整体分布情况。OpenCV中提供了相应的计算函数calcHist(),可以得到相应分布范围的像素点数;将其绘制出来观察,更为直转载 2021-08-25 14:12:00 · 868 阅读 · 0 评论 -
OpenCV 直方图均衡化原理
直方图均衡化的作用是图像增强。有两个问题比较难懂,一是为什么要选用累积分布函数,二是为什么使用累积分布函数处理后像素值会均匀分布。第一个问题。均衡化过程中,必须要保证两个条件:①像素无论怎么映射,一定要保证原来的大小关系不变,较亮的区域,依旧是较亮的,较暗依旧暗,只是对比度增大,绝对不能明暗颠倒;②如果是八位图像,那么像素映射函数的值域应在0和255之间的,不能越界。综合以上两个条件,累积分布函数是个好的选择,因为累积分布函数是单调增函数(控制大小关系),并且值域是0到1(控制越界问题),所以直方图均衡转载 2021-08-25 14:08:17 · 408 阅读 · 0 评论 -
VS2012 配置 OpenCV3.0
VS2012 配置 opencv3.0,相比之前的版本,3.0的配置简单了好多。通过配置属性文件,可以做到一次配置,重复使用!根据文章的操作在 win7 64bit VS2012 下成功配置 opencv3.0,亲测可用!1. 配置系统环境变量配置方法如下:【计算机】->【(右键)属性】->【高级系统设置】->【高级(标签)】->【环境变量】->“双击”系统变量中的PATH->在变量值里面添加相应的路径。对于32位系统,就添加:“D:\ProgramFile转载 2021-08-20 16:08:52 · 623 阅读 · 0 评论 -
【OpenCV】高手勿入! 半小时学会基本操作 2 图像基础操作
【OpenCV】高手勿入! 半小时学会基本操作 2 概述截取图像获取颜色通道单通道显示读取视频 概述 OpenCV 是一个跨平台的计算机视觉库, 支持多语言, 功能强大. 今天小白就带大家一起携手走进 OpenCV 的世界. (第 2 课) 截取图像 例子: ...转载 2021-08-09 09:47:08 · 167 阅读 · 0 评论 -
OpenCV 相机标定
相机标定相机标定:简单的说,就是获得相机参数的过程。参数如:相机内参数矩阵,投影矩阵,旋转矩阵和平移矩阵等什么叫相机参数?简单的说,将现实世界中的人、物,拍成一张图像(二维)。人或物在世界中的三维坐标,和图像上对应的二维坐标间的关系。表达两种不同维度坐标间的关系用啥表示?用相机参数。相机的成像原理先来看一下,相机的成像原理:如图所示,这是一个相机模型。将物体简化看成一个点。来自物体的光,通过镜头,击中图像平面(图像传感器),以此成像。d0是物体到镜头的距离,di是镜头到图像平面的距离,f是镜头转载 2021-07-22 08:39:37 · 303 阅读 · 0 评论 -
opencv3/C++ 机器学习-SVM应用实例:药品(胶囊)识别与分类
问题描述:现对6种不同颜色药品(胶囊)分别进行图像采集,并进行类别标注(0-5)。如图所示(文末附有图像源文件链接):现使用胶囊的RGB通道的均值作为特征,利用SVM建立分类器模型并进行训练,然后利用训练好的模型,在多个样本混合的图像中将各类样本标记出位置并识别出其所属类别。具体详细处理过程见代码及注释。示例代码:#include <iostream>#include<opencv2/opencv.hpp>#include<opencv2/ml.hpp>转载 2021-07-03 08:36:51 · 699 阅读 · 1 评论 -
QT+Opencv实现视频流播放
1.简单流程首先通过opencv打开视频流,获取到数据帧,然后将数据帧转换为QT可识别的图像,显示到QT界面上。2.opencv解码线程源码//DecodeOpencv.h #pragma once #include <QThread>#include <QObject> #include "opencv2/core/core.hpp"#include "opencv2/highgui/highgui.hpp"#include "opencv2/imgproc转载 2021-06-16 08:29:49 · 2386 阅读 · 0 评论 -
opencv3/C++视频中叠加透明图片
大致思路:获取摄像头画面后,通过在图像上循环叠加一组背景透明的PNG图片,在图像上产生类似GIF的动图效果。#include<opencv2/opencv.hpp>using namespace cv;//PNG透明图片叠加到视频int main(){ Mat frame; VideoCapture capture; capture.open(0); if(!capture.isOpened()) { printf("can n转载 2021-06-08 08:33:49 · 1080 阅读 · 0 评论 -
opencv3/C++ 机器学习-神经网络ANN_MLP识别数字
神经网络ANN_MLP识别数字环境:win7+VS2012+OpenCV3利用OpenCV3中的ANN_MLP神经网络,使用如图所示图片进行训练,实现简单的数字识别功能。训练测试代码:#include <io.h>#include <string>#include <iostream>#include <opencv2\opencv.hpp>#include <opencv2\ml.hpp>using namespace cv;转载 2021-06-07 08:44:08 · 547 阅读 · 0 评论 -
opencv从某一帧开始播放
m_videocapture.set(CV_CAP_PROP_POS_FRAMES, frameToStart);原创 2021-06-07 08:44:56 · 885 阅读 · 0 评论 -
opencv 全景图像拼接demo
#include <iostream>#include <opencv2/core/core.hpp>#include <opencv2/highgui/highgui.hpp>#include <opencv2/imgproc/imgproc.hpp>#include <opencv2/stitching/stitcher.hpp>using namespace std;using namespace cv;bool try_us转载 2021-05-21 16:21:14 · 255 阅读 · 0 评论 -
Opencv2.4.9源码分析——Stitching(一)
相机镜头所呈现出的景物要比人类的视觉系统所看到的景物要狭小得多,因此一幅图像不可能捕获到我们所看到的整个景物。全景图像拼接给出了这个问题的解决办法,它是把图像间重叠部分拿出来拼接起来,从而得到一幅更大的图像。这种算法也可以用于把一幅图像插入到另一幅图像中。 图1 图像拼接执行过程及方法 要想完成图像拼接,所要用到的算法较多,Opencv把这些算法用一张图呈现了处理,如图1所示。下面我们就详细图像拼接算法...转载 2021-05-21 16:16:25 · 736 阅读 · 0 评论 -
Opencv Mat图像与HBITMAP互相转换
HBitmap 转Matbool HBitmap2Mat(HBITMAP &hBmp,Mat &mat){ BITMAP Bmp; GetObject(a->bmp,sizeof(BITMAP),&Bmp); int nChannels = Bmp.bmBitsPixel == 1 ? 1 : Bmp.bmBitsPixel/8 ; int depth = Bmp.bmBitsPixe转载 2021-05-18 14:22:00 · 1123 阅读 · 0 评论 -
OpenCV中基于LBP算法的人脸检测测试代码
下面是OpenCV 3.3中基于CascadeClassifier类的LBP算法实现的人脸检测,从结果上看,不如其它开源库效果好,如libfacedetection,可参考 https://blog.csdn.net/fengbingchun/article/details/52964163#include "funset.hpp"#include <string>#include <vector>#include <algorithm>#include <转载 2021-05-14 10:54:23 · 252 阅读 · 0 评论 -
OpenCV 透视变换实例
// affine transformation.cpp : 定义控制台应用程序的入口点。// #include "stdafx.h" /** * Automatic perspective correction for quadrilateral objects. See the tutorial at * http://opencv-code.com/tutorials/automatic-perspective-correction-for-quadrilateral-objects/转载 2021-05-12 10:54:34 · 139 阅读 · 0 评论 -
二维码的特征定位和信息识别
二维码的特征定位和信息识别背景介绍视觉的方法可以用来估计位置和姿态。最容易想到的是在目标上布置多个容易识别的特征,这样使用opencv相机标定和、相机畸变矫正、轮廓提取、solvepnp来获取目标相对于相机的位姿。在实际使用中只要相机和目标一方是估计的,那就可以得到全局坐标。如果相机和靶标都在移动,那只能获取到相对坐标。但是受限于相机视角和景深,这样多个特征的识别虽然精度可以很高,但是范围却很小。对于如何扩大范围,使用二维码是一个很好的思路。首先,二维码本身具有多个特征,单个二维码可以用来实现上述方法转载 2021-05-04 22:15:39 · 1990 阅读 · 0 评论 -
OpenCV在Qt中显示视频的两种方法
注意,要在ui界面上放置一个“Vertical Layout”控件,调整到合适大小头文件#include <QtWidgets/QMainWindow> #include <QPaintEvent> #include <QTimer> #include <QPainter> #include <QPixmap> #include <QLabel> #include <QImage> #incl转载 2021-05-02 18:31:36 · 3567 阅读 · 0 评论 -
OpenCV编程:OpenCV3.X训练自己的分类器
一、环境介绍操作系统: windows10 64位QT版本: 5.12.6 (我的程序里主要是QT+OpenCV实现图像处理显示的)OpenCV版本: OpenCV3.4.7二、下载安装OpenCVwindows下不用下载源码,可以直接在官网下载编译好的文件解压即可使用。OpenCV官网下载地址下载之后解压到指定目录即可,我这里是直接解压到C盘的。因为在官网下载的版本是VC版本,而我的QT使用的是MinGW编译器,上面下在官网下载的安装包里的库用不了,需要再下载一个MinGW版本。 下载转载 2021-04-21 11:42:06 · 647 阅读 · 0 评论