Opencv
MagiChos
这个作者很懒,什么都没留下…
展开
-
给图像添加Logo
介绍给图像加上logo,这里介绍两种融合方法方法传统方法直接替换seamlessClone方法传统方法直接替换直接上代码def add_logo(cv_logo_img, cv_src_img): rows, cols, channels = cv_logo_img.shape roi = cv_src_img[0:rows, 0:cols] im...原创 2020-03-30 22:10:23 · 795 阅读 · 0 评论 -
图像特征匹配
简介本文主要演示利用opencv自带的特征检测算子做图像的特征匹配。检测算子包括SIFTSURFORB特征描述子提取算子包括SIFTSURFORBVGG匹配算法FlannBasedMatcher本文不对相关原理做介绍,只演示其用法,如果对原理感兴趣可以查阅相关文档学习。首先,包含所需要的头文件#include <opencv2/opencv.hpp&...原创 2020-03-28 10:46:54 · 1498 阅读 · 0 评论 -
opencv中的filesystem
c++中缺乏对文件的相关操作,以前用的是stlplus中的文件操作,无意中发现opencv中也有相关实现,记录一下方便查询。#include <iostream>#include <opencv2/opencv.hpp>#include <opencv2/core/utils/filesystem.hpp>using namespace std;...原创 2020-03-16 20:18:56 · 1067 阅读 · 0 评论 -
cvReduce函数
C++: void reduce(InputArray src, OutputArray dst, int dim, int rtype, int dtype=-1 ) C: void cvReduce(const CvArr* src, CvArr* dst, int dim=-1, int op=CV_REDUCE_SUM) 将二维数组转化为向量 参数说明: src 输入矩阵 d原创 2017-06-16 00:35:45 · 2737 阅读 · 0 评论 -
K均值用法
C++: double kmeans(InputArray data, int K, InputOutputArray bestLabels, TermCriteria criteria, int attempts, int flags, OutputArray centers=noArray() )参数说明:data:聚类的数据,是N维的数组类型,必须是浮点型。K:表示需要聚类的类别数原创 2017-06-16 23:59:25 · 565 阅读 · 0 评论 -
链码跟踪算法
链码跟踪算法转载 2017-06-18 22:31:40 · 3641 阅读 · 0 评论 -
opencv中使用opengl
opencv中默认是不支持opengl,所以在编译Opencv时需勾选opengl。下面给一段opencv中使用opengl的小例子#include <opencv2/core/core.hpp>#include <opencv2/highgui/highgui.hpp>#include <GL/glut.h>using namespace cv;void onDraw(void* param原创 2017-06-04 15:13:06 · 4346 阅读 · 0 评论 -
Hu不变矩
opencv中的矩主要包括以下几种:空间矩,中心矩和中心归一化矩。class Moments { public: ...... // 空间矩double m00, m10, m01, m20, m11, m02, m30, m21, m12, m03;// 中心矩double mu20, mu11, mu02, mu30, mu21, mu12, mu03;// 中心归一化矩 do原创 2017-07-04 13:29:23 · 1098 阅读 · 0 评论 -
主成分分析(PCA)
在这一篇之前的内容是《Factor Analysis》,由于非常理论,打算学完整个课程后再写。在写这篇之前,我阅读了PCA、SVD和LDA。这几个模型相近,却都有自己的特点。本篇打算先介绍PCA,至于他们之间的关系,只能是边学边体会了。PCA以前也叫做Principal factor analysis。 1. 问题 真实的训练数据总是存在各种各样的问题:1、 比如拿到一个汽车的样本,里面既有以“转载 2017-07-04 14:20:31 · 358 阅读 · 0 评论 -
CvStatModel
ML库中的统计模型基类。ML库中的统计模型基类。缺省构造函数 CvStatModel::CvStatModel();ML中的每个统计模型都有一个无参数构造函数。这个构造函数在”两步法”构造时非常有用,先调用这个缺省构造函数,紧接着调用 tranin() 或者load() 函数.CvStatModel::CvStatModel(…) 训练构造函数 CvStatModel::CvStatModel原创 2017-08-13 16:32:07 · 1053 阅读 · 0 评论 -
分割车牌
cv::Mat src = cv::imread("2.jpg" , 1); cv::Mat img_gray; cv::cvtColor(src, img_gray , CV_BGR2GRAY); // 图像滤波处理 cv::blur(img_gray, img_gray, cv::Size(5, 5)); cv::Mat src_filter; cv:原创 2017-09-10 22:13:48 · 810 阅读 · 0 评论 -
利用灰度共生矩阵提取图像纹理特征
1. 灰度共生矩阵概念 灰度共生矩阵定义为像素对的联合概率分布,是一个对称矩阵,它不仅反映图像灰度在相邻的方向、相邻间隔、变化幅度的综合信息,但也反映了相同的灰度级像素之间的位置分布特征,是计算纹理特征的基础。在图像中任意取一点(x,y)及偏离它的一点(x+a,y+b)(其中,a、b为整数,人为定义)构成点对。设该点对的灰度值为(f1,f2),再令点(x,y)在整幅图像上移动,则会得到不同的(f转载 2017-07-04 08:06:56 · 18888 阅读 · 4 评论 -
opencv透视N点法函数详解
C++:bool solvePnP(InputArray objectPoints, InputArray imagePoints, InputArray cameraMatrix, InputArray distCoeffs, OutputArray rvec, OutputArray tvec, bool useExtrinsicGuess=false, int flags=ITERATIVE原创 2017-05-07 22:53:35 · 1994 阅读 · 0 评论 -
霍夫变换源码
void cv::HoughLines( InputArray _image, OutputArray _lines, double rho, double theta, int threshold, double srn, double stn ){ Ptr<CvMemStorage> storage =原创 2016-10-08 21:43:40 · 1653 阅读 · 0 评论 -
knn进行二维样本集分类
#include <ml.h>#include <highgui.h>int main( int argc, char** argv ){ const int K = 10; int i, j, k, accuracy; float response; int train_sample_count = 100; CvRNG rng_state = cvRN转载 2016-10-12 17:05:10 · 790 阅读 · 0 评论 -
IplImage\Mat\CvMat像素处理
opencv中三种基本的矩阵结构,IplImage和Mat用于读取图像,CvMat用于矩阵运算,下面总结其用法,可能总结不全,敬请谅解。1 、IplImage对像素处理 1. 创建一副单通道字节性图像,令其像素全为黑 IplImage* img=cvCreateImage(cvSize(640,480),IPL_DEPTH_8U,1); for (int i=0;i<img->height;i原创 2016-01-18 08:29:50 · 592 阅读 · 0 评论 -
opencv相机标定
主要是参照opencv2那本书,注视写的都很详细,方便以后查找! CameraCalibrator.h头文件#include <iostream>#include <opencv2/core/core.hpp>#include <opencv2/highgui/highgui.hpp>#include <opencv2/imgproc/imgproc.hpp>#include <opencv原创 2016-01-19 01:25:39 · 2739 阅读 · 0 评论 -
cvPerspectiveTransform
今天在用到透视投影变换的时候,调用opencv中的cvPerspectiveTransform ,不知为何总是报错,后来仔细看了cvPerspectiveTransform 函数说明后才明白, void cvPerspectiveTransform( const CvArr* src, CvArr* dst, const CvMat* mat ); 参数src,dst必须是三通道的浮点数组,也就原创 2016-01-04 16:42:04 · 3930 阅读 · 1 评论 -
cvNormalize用法
根据某种范数或者数值范围归一化数组.void cvNormalize( const CvArr* src, CvArr* dst, double a=1, double b=0, int norm_type=CV_L2, const CvArr* mask=NULL ); src 输入数组 dst 输出数组,支持原地运算 a 输出数组的最小/最大值或者输出数组的范数 b 输出数组原创 2016-01-05 13:25:24 · 999 阅读 · 0 评论 -
利用cvGetCols裁剪图像
有时为了提高图像处理的速度,只对有价值的区域进行处理,发现opencv中有一个很好用的函数,可以对图像进行裁剪 返回数组的列或一定跨度内的列 CvMat* cvGetCol( const CvArr* arr, CvMat* submat, int col ); CvMat* cvGetCols( const CvArr* arr, CvMat* submat, int start_col,原创 2016-01-05 16:32:00 · 1754 阅读 · 1 评论 -
带进度条控制的视频读取与存储
#include <iostream>#include <cv.h>#include <highgui.h>#include <cxcore.h>using namespace std;//初始化进度条位置int g_slider_position1=0;int g_slider_position2=0;CvCapture* g_capture1=NULL;CvCapture* g_c原创 2016-01-07 22:25:23 · 943 阅读 · 0 评论 -
构建金字塔
在图像处理的时候,经常会用到构建图像的金字塔,如大图像的快速显示等,opencv已经封装了构建金字塔函数cvPyrDown()#include <cv.h>#include <highgui.h>#include <iostream>#include <math.h>using namespace std;using namespace cv;void main(){ IplIm原创 2016-01-08 00:53:56 · 712 阅读 · 0 评论 -
Mat转IplImage
openvc1.0采用的是c语言,采用的是IplImage结构体,opencv2以后采用的是类似matlab读取图像的Mat,有时我们采用Mat读取图像时,相关的opencv2函数不熟悉需要利用opencv1中得函数时就需要将Mat型转为IpImage类型。#include <iostream>#include <cv.h>#include <highgui.h>#include <openc原创 2016-01-08 10:53:20 · 611 阅读 · 0 评论 -
快速最近邻匹配
这是一个完整的利用Suft快速近邻匹配的程序#include <opencv2/nonfree/nonfree.hpp>#include <opencv2/nonfree/features2d.hpp>#include <opencv.hpp>#include <opencv2/imgproc/imgproc.hpp>#include <iostream>#include <opencv2原创 2016-03-06 13:51:43 · 4522 阅读 · 0 评论 -
检测棋盘格角点
#include <cv.h>#include <highgui.h>#include <iostream>using namespace cv;void main(){ IplImage *src = cvLoadImage("棋盘格.bmp") ; CvSize board_size = cvSize(9 , 9) ; CvPoint2D32f * image_p原创 2016-02-23 23:29:41 · 1503 阅读 · 0 评论 -
opencv回调函数
#include <opencv.hpp>#include <iostream>using namespace std;using namespace cv;/************************************************************************//* 鼠标事件的处理函数 * @Param event 鼠标触发事件的类型原创 2016-05-05 09:38:59 · 1073 阅读 · 0 评论 -
立体校正相关函数
做立体标定的时候,opencv涉及的函数不少,且各个函数的参数又十分复杂,很容易搞混乱,把几个常见的函数总结在一起,方便以后查找。 1.cvStereoCalibrate 用于标定立体相机 函数形式C++: cvStereoCalibrate( const CvMat* object_points, const CvMat* image_points1, const CvMat* imag原创 2016-01-05 20:18:43 · 2726 阅读 · 0 评论