OpenCV学习
文章平均质量分 90
MachineLP
成功收获成果,失败收获智慧,投入收获快乐!
展开
-
OpenCV学习笔记
machinelp的OpenCV学习笔记专栏:https://zhuanlan.zhihu.com/c_1092062070664663040... Solution code_001 OpenCV之图片读取与显示 code_002 OpenCV之图片灰度化 code_003 OpenCV之图像创建与赋值 code_004 OpenCV之图像像...原创 2020-03-01 22:06:08 · 1674 阅读 · 4 评论 -
Mac 安装Qt5,QtCreator3.5 并使用OpenCV
最近要在mac运行一个Qt工程,需要使用OpenCV+ITK+VTK,搞了好久才搞定。我只想说,vtk+itk在mac上的资料真心少,虽然osx和Linux的安装配置大体一样,但是就是那些许差异埋得坑真是磨人(特别是对于身为新手而言,泪奔啊´╮(╯﹏╰)╭ 。所以搞定之后打算好好写个博客记录自己踩过的坑,也供给他人提供经验少踩坑。这篇博客主要记录Qt的安装,和如何在Qt上使用转载 2016-11-25 16:13:47 · 1614 阅读 · 0 评论 -
读取文件中的所有图片的路径,保存到txt文件中。
import sysimport os.pathif __name__ == "__main__": f = open('dataset.txt', 'w') # 文件名,文件下还有多个类别的文件。 BASE_PATH="JAFFE" SEPARATOR=";" # 绝对路径地址 pth = "/Users/liupeng/Desktop/原创 2016-11-20 19:59:33 · 4998 阅读 · 0 评论 -
imge stitching图像拼接stitching
直接代码:#include #include #include #include // 新版本写在下面文件中:#include //#include "opencv2/features2d/features2d.hpp"#include#include using namespace std;using namespace cv;bool try_use_gpu =原创 2016-12-02 11:41:54 · 2223 阅读 · 0 评论 -
vehicleDectection with Haar Cascades
VehicleDetectonCODE:VehicleDetectionLast version: 1.0.0 (see Release Notes for more info)Hello everyone, An easy way to perform vehicle detection is by using Haar Cascades. Currently, I don'原创 2016-11-08 20:44:30 · 1492 阅读 · 0 评论 -
自己训练SVM分类器,进行HOG行人检测。
正样本来源是INRIA数据集中的96*160大小的人体图片,使用时上下左右都去掉16个像素,截取中间的64*128大小的人体。负样本是从不包含人体的图片中随机裁取的,大小同样是64*128。SVM使用的是OpenCV自带的CvSVM类。首先计算正负样本图像的HOG描述子,组成一个特征向量矩阵,对应的要有一个指定每个特征向量的类别的类标向量,输入SVM中进行训练。训练转载 2016-11-20 19:41:34 · 6654 阅读 · 0 评论 -
2维特征Feature2D—特征点的图像匹配
基于特征点的图像匹配是图像处理中经常会遇到的问题,手动选取特征点太麻烦了。比较经典常用的特征点自动提取的办法有Harris特征、SIFT特征、SURF特征。先介绍利用SURF特征的特征描述办法,其操作封装在类SurfFeatureDetector中,利用类内的detect函数可以检测出SURF特征的关键点,保存在vector容器中。第二部利用SurfDescriptorExtractor类进行原创 2016-11-24 15:49:40 · 4696 阅读 · 0 评论 -
最简单的目标跟踪(模版匹配)
一、概述 目标跟踪是计算机视觉领域的一个重要分支。研究的人很多,近几年也出现了很多很多的算法。大家看看淋漓满目的paper就知道了。但在这里,我们也聚焦下比较简单的算法,看看它的优势在哪里。毕竟有时候简单就是一种美。 在这里我们一起来欣赏下“模板匹配”这个简单点的跟踪算法。它的思想很简单,我们把要跟踪的目标保存好,然后在每一帧来临的时候,我们在整个图像中寻找与这个目转载 2016-11-24 17:02:42 · 3238 阅读 · 0 评论 -
基于粒子滤波的物体跟踪
代码实现:运行方式:按P停止,在前景窗口鼠标点击目标,会自动生成外接矩形,再次按P,对该选定目标进行跟踪。//// main.cpp// opencvLearn//// Created by 刘鹏 on 2016/11/24.// Copyright © 2016年 刘鹏. All rights reserved.//#include #include #inc原创 2016-11-25 15:36:03 · 1513 阅读 · 2 评论 -
迅速上手,能随便跑起来的OpenTLD
OpenTLD(Tracking-Learning-Detection)运动跟踪与检测开源软件:下载地址:here。实验效果图:原创 2016-11-25 21:22:16 · 2031 阅读 · 1 评论 -
opencv_traincascade训练分类器,手势识别。
opencv_traincascade 训练方法,参考本人的博客:Here;xml和video下载地址:Here。测试代码:#include #include #include #include using namespace std;using namespace cv;// Global variables// Copy this file from o原创 2016-11-27 15:07:58 · 4860 阅读 · 0 评论 -
MFC中使用OpenCV显示摄像头图像
之前一直想在MFC上学习,但是苦于对一些算法的研究花了比较多的时间,现在回头来学习MFC,学习的内容比较简单,只是简单的显示摄像头的图像,以下是我程序的界面部分:这里其实需要往MFC里面添加的有以下几部分:1、将IplImage画到DC;2、设置计时器以便能够持续抓到帧;3、增加OnClose来释放摄像头及计时器。1>、将IplImage的格式draw到DC中,使用的C转载 2015-12-03 09:58:46 · 1436 阅读 · 0 评论 -
图像的遍历
我们在实际应用中对图像进行的操作,往往并不是将图像作为一个整体进行操作,而是对图像中的所有点或特殊点进行运算,所以遍历图像就显得很重要,如何高效的遍历图像是一个很值得探讨的问题。一、遍历图像的4种方式:at(i,j)Mat类提供了一个at的方法用于取得图像上的点,它是一个模板函数,可以取到任何类型的图像上的点。下面我们通过一个图像处理中的实际来说明它的用法。在实际应用中,我们很多时候需转载 2016-12-08 09:39:44 · 2740 阅读 · 0 评论 -
【OpenCV入门指南】第一篇 安装OpenCV
【OpenCV第一篇】安装OpenCV本篇主要介绍如何下载OpenCV安装程序,如何在VS2008下安装配置OpenCV,文章最后还介绍了一个使用OpenCV的简单小例子。《OpenCV入门指南》系列文章地址:http://blog.csdn.net/morewindows/article/category/1291764一.OpenCV的下载可以到http://w转载 2016-09-26 08:15:20 · 1068 阅读 · 0 评论 -
OCR -- 训练数据扩增的方法
结交了一些大神级的人物, 每次交流都有很多收获,感谢一路相伴,感谢带我一起成长。(1)透视变换(2)gauss_blur(3)norm_blur(4)模糊图像,模拟小图片放大的效果(5)颜色翻转、滤波等等具体代码实现如下:(1)透视变换 (具体原理可查看:仿射变换,透视变换:二维坐标到二维坐标之间的线性变换,可用于landmark人脸矫正)#!/usr/env/b...原创 2018-10-27 22:41:50 · 3099 阅读 · 2 评论 -
OCR -- seamlessClone泊松融合
opencv:https://www.learnopencv.com/seamless-cloning-using-opencv-python-cpp/OCR工程git:https://github.com/MachineLP/OCR_repo看到这个题目是不是很突兀啊,OCR和泊松融合又有啥关系呢?是这样的,因为在训练的时候需要生成训练字体,有时候需要融合不同的背景。看一下效果...原创 2018-10-21 15:13:55 · 1179 阅读 · 0 评论 -
使用openCV提取sift;surf;hog特征
cv2.SIFT()cv2.SURF()cv2.HOGDescriptor()使用cv2.SIFT的一个样例:(cv2.SURF使用与之类似)#coding=utf-8 import cv2 import scipy as sp img1 = cv2.imread('x1.jpg',0) # queryImage img2 = cv2.imread('x2.jpg',0) #...原创 2018-03-05 13:02:45 · 1314 阅读 · 0 评论 -
python下使用cv2.drawContours填充轮廓颜色
你要的答案或许都在这里:小鹏的博客目录在使用cv2.drawContours进行轮廓的颜色填充时要注意一点:(1)颜色填充时:给其传参数的时候,需要搞一个轮廓的list给他,要不会导致颜色填充失败。(2)画轮廓线时:就没必要搞list了,直接contours[i]就可以。python代码:图片:背景为黑色,有很多白色填充的。下面代码是去除图片中自定义面积小的轮廓原创 2017-08-30 18:15:36 · 65522 阅读 · 14 评论 -
仿射变换,透视变换:二维坐标到二维坐标之间的线性变换,可用于landmark人脸矫正。
仿射变换:仿射变换是一种二维坐标到二维坐标之间的线性变换,并保持二维图形的“平直性”。转换前平行的线,在转换后依然平行。如下图:import cv2import numpy as npfrom matplotlib import pyplot as plt img = cv2.imread('lena.jpg', 1)rows,cols,channel = img.s原创 2017-11-30 17:48:12 · 5156 阅读 · 0 评论 -
opencv实现抠图(单一背景),替换背景图
下面简单图片演示一下:提取mask:===>替换背景:+=python的opencv代码如下:# coding=utf-8import cv2import numpy as npimg=cv2.imread('lp.jpg')img_back=cv2.imread('back.jpg')#日常缩放rows,cols,channels = i原创 2017-12-21 14:50:28 · 18343 阅读 · 3 评论 -
kinect v2.0原理介绍之十一:录制视频
不小心误删了,再加上。~~有兴趣的小伙伴,加kinect算法交流群:462964980。录制视频是结合openCV来做的。 代码如下:// 1920*1080调整为640*480#define RESOLUTIONCOLOR 640,480VideoWriter writerColor;writerColor.open("outColor.avi", CV_FOURC原创 2017-09-11 08:57:57 · 4781 阅读 · 3 评论 -
非极大值抑制(Non-Maximum-Suppression)
#include #include #include #include // 新版本写在下面文件中:#include //#include "opencv2/features2d/features2d.hpp"#includeusing namespace std;using namespace cv;void nms( const std::vecto原创 2016-11-28 13:49:11 · 20901 阅读 · 0 评论 -
MAC平台下Xcode配置使用OpenCV的具体方法 (2016最新)
1.序言:1.1 背景 本人小白一枚,不过因为最近在从事机器视觉方面的工作,所以接触到OpenCV. 因为工作需求,本人要在MAC端使用OpenCV实现一些视觉功能,配置环境成了最大的阻碍,网上查了很多相关资料和博客,都因为版本环境问题屡试屡败,不过经历重重尝试,笔者最终还是配置成功并运行了自己的源码.当然成功的关键还是因为笔者站在了巨人的肩膀上,借鉴了原创 2016-11-07 16:46:49 · 19734 阅读 · 19 评论 -
目标检测之训练opencv自带的分类器(opencv_haartraining 或 opencv_traincascade)
文仅仅梳理自己所学习的知识所用,有什么写的不当的地方请各位指教。完全是个人经验之谈。Opencv自带的分类器是adaboost分类器算法思想是通过迭代训练弱分类器得到一个强分类器。每次迭代得到局部最优的分类器,然后将局部最优的分类器权值相加最后得到一个可用的强分类器。算法伪代码如下:(1) 初始化训练数据的权值分布,让其服从均匀分布。(2) 学习原创 2016-11-01 16:15:08 · 15516 阅读 · 3 评论 -
Why always OpenCV Error: Assertion failed (elements_read == 1) in unknown function ?
在Windows下安装好opencv2.4.9之后,在"xxx/build/x64/vc10/bin"下有训练中要用到的可执行程序opencv_xxxx.exe等四个可执行程序。注意,由于本人为win7 64bits系统,安装了VS2010,故使用该目录下的可执行程序。 当使用自带程序进行人脸检测训练时,遇到一些问题,整理如下:1.训练中途,程序突然终止,提示"OpenCV原创 2016-11-01 21:03:24 · 2555 阅读 · 1 评论 -
【OpenCV入门指南】第三篇Canny边缘检测
【OpenCV入门指南】第三篇Canny边缘检测 图像的边缘检测的原理是检测出图像中所有灰度值变化较大的点,而且这些点连接起来就构成了若干线条,这些线条就可以称为图像的边缘。 Canny边缘检测算子是John F. Canny于 1986 年开发出来的一个多级边缘检测算法。Canny 边缘检测的数学原理和算法实现这里就不再了,有兴趣的读者可以查阅专业书籍,本文主要介绍如转载 2016-09-26 08:22:55 · 874 阅读 · 0 评论 -
【OpenCV入门指南】第二篇 缩放图像
【OpenCV入门指南】第二篇 缩放图像上一篇《【OpenCV入门指南】第一篇安装OpenCV》讲解了如何在VS2008下安装和配置OpenCV,本篇将介绍使用OpenCV来缩放图片。首先介绍几个关键函数——cvResize和cvCreateImage《OpenCV入门指南》系列文章地址:http://blog.csdn.net/morewindows/article/catego转载 2016-09-26 08:16:47 · 486 阅读 · 0 评论 -
在 MFC 框架中,有什么方法能直接将 OpenCV 2.0 库中 Mat 格式的图片传递到 Picture Control(图片控件)显示?
也可以把OpenCV的窗口添加到PictureControl里面,这样你可以继续使用OpenCV的setMouseCallback直接对PictureControl进行鼠标操作。首先在你的OnInit函数中添加如下namedWindow("view", WINDOW_AUTOSIZE);HWND hWnd = (HWND) cvGetWindowHandle("view");H转载 2016-05-11 12:44:42 · 1648 阅读 · 0 评论 -
OpenCV Haar AdaBoost源码改进(比EMCV快6倍)
这几天研究了OpenCV源码 Haar AdaBoost算法,作了一下改进1.去掉了所有动态分配内存的操作,对嵌入式系统有一定的速度提升2.注释覆盖了大量关键代码3.减少了代码一半的体积,并且减少了部分健壮性的代码,速度比OpenCV源码提升16%4.修改了大量数据结构,不依赖CV源码直接编译5.去掉了double型,改成Int6.开方改成查表转载 2016-04-07 11:14:36 · 1661 阅读 · 0 评论 -
训练自己的harr-like特征分类器并识别物体
本系列文章旨在学习如何在opencv中基于haar-like特征训练自己的分类器,并且用该分类器用于模式识别。该过程大致可以分为一下几个大步骤:1.准备训练样本图片,包括正例及反例样本2.生成样本描述文件3.训练样本4.目标识别=================本文主要对步骤1、步骤2进行说明。1.准备训练样本图片,包括正例及反例样本1)正样本的采集: 所谓正转载 2016-04-07 10:22:45 · 2935 阅读 · 3 评论 -
OpenCV之视频读取与帧的提取、显示及保存
OpenCV支持从摄像头或视频文件(AVI)中抓取图像并保存为另一视频文件. 一、从摄像头获取初始化:CvCapture* capture = cvCaptureFromCAM(0); // capture from video device #0从视频文件filename.avi获取初始化:CvCapture* capture = cvCaptureFromAVI("in转载 2016-03-29 15:15:06 · 15167 阅读 · 1 评论 -
opencv2.2以上不支持CvvImage的解决办法
在vs10中搭配好了opencv2.3后,跑了一段程序还是出错,原来是因为opencv2.2以上去掉了CvvImage这个类在网上找到了这个解决办法:从原来2.1版本里面将CvvImage单独提取出来做一个新类CvvImage.h#pragma once#ifndef CVVIMAGE_CLASS_DEF#define CVVIMAGE_CLASS_转载 2015-12-03 17:09:51 · 609 阅读 · 0 评论 -
【opencv】VS2010+CMake重编译opencv2.4.10
实验平台WinXP + VS2010 + opencv2.4.10 + CMake3.3.0重编译两问为什么要重编译? 为了在调试时可以跟踪进入到源码中,我们需要重新编译生成.dll和.lib文件,这样替换掉opencv提供的.dll和.lib文件,就可以解决这个问题。 本来opencv提供的动态链接库就已经是可以用的,但转载 2016-01-19 10:32:35 · 2747 阅读 · 1 评论 -
OpenCV学习:HOG+SVM物体分类
这里总结网上自己找到的资料,搞一个简单的框架供大家参考一下。OpenCV官方的SVM代码在http://www.opencv.org.cn/opencvdoc/2.3.2/html/doc/tutorials/ml/introduction_to_svm/introduction_to_svm.html在http://blog.csdn.net/sangni007/articl转载 2015-09-04 20:24:40 · 1717 阅读 · 0 评论 -
【OpenCV入门指南】第四篇 图像的二值化
【OpenCV入门指南】第四篇 图像的二值化 在上一篇《【OpenCV入门指南】第三篇Canny边缘检测》中介绍了使用Canny算子对图像进行边缘检测。与边缘检测相比,轮廓检测有时能更好的反映图像的内容。而要对图像进行轮廓检测,则必须要先对图像进行二值化,图像的二值化就是将图像上的像素点的灰度值设置为0或255,这样将使整个图像呈现出明显的黑白效果。在数字图像处理中,二值图像占有非常重转载 2016-09-26 08:24:51 · 821 阅读 · 0 评论 -
【OpenCV入门指南】第五篇 轮廓检测 上
【OpenCV入门指南】第五篇 轮廓检测 上《【OpenCV入门指南】第三篇Canny边缘检测》中介绍了边缘检测,本篇介绍轮廓检测,轮廓检测的原理通俗的说就是掏空内部点,比如原图中有3*3的矩形点。那么就可以将中间的那一点去掉。 在OpenCV中使用轮廓检测是非常方便。直接使用cvFindContours函数就能完成对图像轮廓的检测。下面就来看看这个函数的用法。转载 2016-09-26 08:26:28 · 926 阅读 · 0 评论 -
【OpenCV入门指南】第六篇 轮廓检测 下
上一篇《【OpenCV入门指南】第五篇轮廓检测上》介绍了cvFindContours函数和cvDrawContours函数,并作了一个简单的使用示范。本篇将展示一个实例,让大家对轮廓检测有个更加深入的认识。 代码如下:[cpp] view plain copy//图像的轮廓检测下 //By MoreWindows (http:/转载 2016-09-26 08:28:17 · 524 阅读 · 0 评论 -
opencv-haar-classifier-training
Training OpenCV Haar classifierCODE:OpenCV Haar classifierTRAIN YOUR OWN OPENCV HAAR CLASSIFIER22 July 2013, posted by Thorsten BallOpen this page, allow it to access your webcam原创 2016-11-09 09:50:37 · 2583 阅读 · 0 评论 -
OpenCV学习笔记大集锦
原文:http://www.cvrobot.net/collect-opencv-resource-learn-study-note-chinese/整理了我所了解的有关OpenCV的学习笔记、原理分析、使用例程等相关的博文。排序不分先后,随机整理的。如果有好的资源,也欢迎介绍和分享。1:OpenCV学习笔记作者:CSDN数量:55篇博文网址转载 2016-11-07 09:26:14 · 1334 阅读 · 0 评论 -
OpenCV人脸检测使用detectMultiScale可能会报错_CrtIsValidHeapPointer的解决方法
运行环境:VS2012+OpenCV2.4.8。存在问题: 在使用OpenCV的人脸检测时,用到了detectMultiScale函数,使用方法为:face_cascade.detectMultiScale( frame_gray, faces, 1.1, 2, 0|CV_HAAR_SCALE_IMAGE, cv::Size(30, 30) ); 其中faces为vector,在faces这个v原创 2015-11-18 14:49:12 · 6343 阅读 · 1 评论