OpenCV
文章平均质量分 68
丐帮二帮主
让自己保持最新。
展开
-
OpenCV学习笔记一 例程
1.加载图像// load image.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include "highgui.h"#include "cv.h"#include "cxcore.h"int _tmain(int argc, _TCHAR* argv[]){ IplImage* src = cvLoadImage("C:\\Us原创 2014-12-14 11:50:28 · 629 阅读 · 0 评论 -
动态库和静态库以及OpenCV库配置解释
动态库和静态库 静态链接库:需要提供生成库的*.h文件和*.lib文件 在生成库的*.h文件中,声明格式为: extern“C” 函数返回类型 函数名(参数表) 在*.cpp源文件中, #include“..\lib.h” #pr原创 2016-10-14 20:53:45 · 4513 阅读 · 0 评论 -
OpenCV19(stitch工程的配置,搭建自己的stitch,补充说明)
参考网址:http://www.tuicool.com/articles/fMbUfaF但是有一些问题还是没有提到,这里再补充说明一次。一、搭建工程1.可以将include和src(\opencv\sources\modules\stitching\detail下)文件夹都复制过来,放在工程目录下,层次更清晰。也可以直接将*.hpp和*.cpp都复制过来,简单粗暴。2.将g原创 2016-10-05 17:08:38 · 1431 阅读 · 0 评论 -
OpenCV21(金字塔LK光流算法)
最好的教程,就是看Blog,然后最后一定要回归书本。 一、LK算法提到了三个假设(高深:就是用你认识的字写你看不懂的东西。办法:多看几遍,查阅Blog上接地气的说法)1.灰度不变 解释一下:假设有一段博尔特跑过的视频,相邻两帧上,博尔特的头的灰度是不变的。 好像是废话,其实不然。博尔特的头,确切的来讲,要说他头上的某一像素点。在不同帧间,坐标原创 2016-10-20 22:13:06 · 2519 阅读 · 1 评论 -
OpenCV22(灰度共现矩阵/灰度共生矩阵)
理解它的最好办法,就是我们来一起算一次。一、先介绍一下基本的概念灰度共现/共生矩阵,其上元素,是灰度图像中某种形状的像素对,在全图中出现的次数(或者是概率)。(不理解?没关系,一会就明白了)可以用作图像的一种特征,借以区分不同的图像。灰度共现矩阵是方阵,矩阵的行数是图像灰度的等级。(不理解?没关系)OK,开始做题。二、计算灰度共现/共生矩原创 2016-10-21 07:33:59 · 6574 阅读 · 3 评论 -
OpenCV23(灰度转化函数,Mat类型)
// 图像基本操作.cpp : 定义控制台应用程序的入口点。// #include "stdafx.h"#include "cv.h"#include "highgui.h"#include "cxcore.h" // Mat定义在这里using namespace cv;int _tmain(int argc, _TCHAR* argv[]){ Mat Img; Img原创 2016-10-31 22:10:38 · 908 阅读 · 0 评论 -
OpenCV24(灰度像素访问,Mat类型)
#include "stdafx.h"#include "cv.h"#include "highgui.h"#include "cxcore.h" // Mat定义在这里#include using namespace std;using namespace cv;// using .ptr and [] void colorReduce0(cv::Mat &image, i原创 2016-10-31 22:16:20 · 3531 阅读 · 0 评论 -
OpenCV25(绘制线和显示文字,Mat类型)
// 视频.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include "highgui.h"#include "cv.h"#include "cxcore.h"#include #include #include using namespace std;using namespace cv;int _tmain(int arg原创 2016-10-31 22:22:10 · 4205 阅读 · 1 评论 -
OpenCV26(c++风格的标定程序)
第零部分:截取标定用的图第一部分:单目摄像机的标定#include "stdafx.h"#include "opencv2/opencv.hpp"#include #include using namespace cv;int _tmain(int argc, _TCHAR* argv[]){ cv::Mat img1; bool stop(false);原创 2017-02-15 20:07:22 · 513 阅读 · 0 评论 -
20170227. EXIF信息的说明(opencv320 ApplyExifOrientation)
在opencv3.2.0中,对imread函数做了修改Mat imread( const String& filename, int flags ){ /// create the basic container Mat img; /// load the data imread_( filename, flags, LOAD_MAT, &img );原创 2017-02-27 16:00:46 · 2378 阅读 · 0 评论 -
一个仅接受两个输入向量的协方差计算函数
输入参数说明:基于opencv_src 一共两行,每行是一个样本数据。如果两个样本如下: A = {1 2 3 4 5 6} ; B = {7 8 9 4 5 6}则_src应该是:1 2 3 4 5 67 8 9 4 5 6double covRowTwoVec(cv::Mat _src){ CV_Assert(_src.rows原创 2017-08-09 20:52:19 · 2100 阅读 · 0 评论 -
程序片段----计算连通域
src_inv 是 CV_8UC1 std::vector> connDomains; cv::findContours(src_inv, connDomains, cv::RETR_EXTERNAL, cv::CHAIN_APPROX_NONE); cv::Mat dst = cv::Mat::ones(src_inv.size(), CV_8UC3); cv::drawContou原创 2017-08-21 20:31:18 · 272 阅读 · 0 评论 -
程序片段----随机森林 opencv
cv::Mat trainData; cv::Mat ClassData; // ... push_back trainData and ClassData, list features as row sample; set type 0-9 for example as a class value // train cv::Ptr rtrees = cv::ml::RTrees::cr原创 2017-08-21 21:13:25 · 587 阅读 · 0 评论 -
程序片段----opencv cv::ml::KNearest knn 20170904
// opencv3 knn 的实例// 样本是随机数生成的,不需要额外数据集。// knn : k 是要设定的参数,意义是:将待测样本X最近的k个点进行比较,A类型的点最多,那么认为待测样本X是A类型。// 环境 : opencv3.0.0 \ vs2012 32 bits \ win7// 环境搭建:// # 1. 新建工程,opencv基本配置// # 2. 将原创 2017-09-04 19:42:32 · 1163 阅读 · 0 评论 -
程序片段----计算连通域
std::vector> connDomains; cv::findContours(src_inv, connDomains, cv::RETR_EXTERNAL, cv::CHAIN_APPROX_NONE); cv::Mat dst = cv::Mat::ones(src_inv.size(), CV_8UC3); cv::drawContours(dst, connDomains,原创 2017-09-04 19:44:23 · 258 阅读 · 0 评论 -
代码片段----cv::FileStorage
Mat的保存和读取存成图像的Mat失去了精度信息,都是归一到0-255存储的。存数据的Mat的保存应该使用FileStorage存储成xml.还有一个用途就是在外部设置程序的参数。对大型工程(编译慢)的调试特别有用。#include int main(){ cv::Mat TrainData; TrainData.push_back((cv::Mat)(原创 2017-09-08 22:54:09 · 432 阅读 · 0 评论 -
OpenCV17(图像二维频谱的理解,傅里叶频谱分析)
傅里叶变换的理解参考教程:http://blog.jobbole.com/70549/这个已经说得很详细了。不过这个说明只是针对一维的傅里叶变换,在图像处理中我们最常见的还是二维频谱,二维频谱到底该怎么看呢?以下是我的理解,谢谢某人的帮助。1.先看一段MATLAB代码I = imread('cell.tif');fI = fft2(I);sfI = fftshi原创 2016-09-21 21:56:41 · 21887 阅读 · 0 评论 -
OpenCV学习笔记11(摄像机帧率实时显示,控制台)
#include "stdafx.h"#include "highgui.h"#include "cxcore.h"#include "cv.h"int _tmain(int argc, _TCHAR* argv[]){ IplImage* src = NULL; CvCapture* capture = cvCaptureFromCAM(0); char c(0); int原创 2016-07-03 08:12:55 · 1909 阅读 · 0 评论 -
opencv学习笔记之二 矩阵的维和通道
by 麦香鱼香麦一、五个常见的数据类型:1.CvPoint CvPoint 二维坐标系下的点,类型为整型 CvPoint2D32f //二维空间中的点CvPoint3D32f //三维空间中的点typedef struct CvPoint{ //默认左上为基点 int x; /* X坐标, 通常以0为基点 */ int y; /* y坐标, 通常以原创 2014-12-16 14:44:31 · 685 阅读 · 0 评论 -
opencv学习笔记之四 c++和直方图
1.内联函数 inline关键字 在编译的时候编译器会替换函数名为函数体,避免了函数调用需要现场和返回指针。利用增加内存占用来提高效率。原创 2014-12-18 12:07:18 · 586 阅读 · 0 评论 -
opencv学习笔记之五 颜色空间
一、颜色空间1.BGR互补光: A(BGR) + B(BGR) = 白色(255,255,255),则AB互补。亮度定义: 绿光人的感应最强。 Y = 0.299*R + 0.587*G + 0.114*B 灰度图像表示的就是亮度的差别。颜色空间的对角线上的颜色是灰度的。非彩色图像 != 灰度图像// opencv12.cpp : 定义控制台应用程序的入口点。//代码原创 2014-12-20 21:08:30 · 595 阅读 · 0 评论 -
opencv学习笔记之六 颜色空间的转换
一、图像空间的转换RGB -> HSV 转换公式在openCV中,H取值范围是 0-360,S是 0-1,V是0-255。本例显示的H的值是0-180,原因是cvCreateImage()中创建的是8位图像深度的图像。存放值范围是0-255,不足360。#include "stdafx.h"#include "cv.h"#include "highgu原创 2014-12-21 14:13:00 · 521 阅读 · 0 评论 -
opencv学习笔记之三 IplImage结构体
NOTE 1 :vc中 sizeof(char) = 1 ; sizeof(int) = 2 ; sizeof(float) = 4 ; sizeof(double) = 8 ;按照字节显示,一字节是八位。NOTE 2 :图像的深度表示用来显示的图像划分的颜色种类数,colormap#define IPL_DEPTH_1U 1#define IPL_DE原创 2014-12-17 10:45:55 · 595 阅读 · 0 评论 -
OpenCV学习笔记之七
函数目录:1.cvLoadImage1.cvLoadImageIplImage* cvLoadImage( const char* filename, int flags=CV_LOAD_IMAGE_COLOR );第二个参数 flags 的选择有三个,CV_LOAD_IMAGE_COLOR 默认(1),以三通道彩色图像显示。原图若是GARY,原来的某点像素值,复原创 2016-03-25 10:24:35 · 620 阅读 · 0 评论 -
OpenCV学习笔记之八(保存视频,录制视频,cvLoadImage的路径)
1.保存视频、录制视频#include "stdafx.h"#include #include "cv.h"#include "highgui.h"#include "cxcore.h"int _tmain(int argc, _TCHAR* argv[]){ IplImage* frame = NULL; CvCapture* capture = cvCreateCamer原创 2016-04-09 11:41:50 · 5575 阅读 · 0 评论 -
OpenCV学习笔记之十 (cvFillPoly&cvPolyLine)
void CALEXDlg::fillArbitaryRectangle(IplImage* src,CvPoint pt1,CvPoint pt2,CvPoint pt3,CvPoint pt4){ int arr[1]; arr[0] = 4; CvPoint ** pt = new CvPoint*[1]; pt[0] = new CvPoint[4]; pt[0原创 2016-06-03 20:17:26 · 2047 阅读 · 0 评论 -
OpenCV学习笔记9 (Hough线变换)
1.hough变换调试程序#include "stdafx.h"#include "cv.h"#include "highgui.h"#include "cxcore.h"int _tmain(int argc, _TCHAR* argv[]){ IplImage* src = cvLoadImage("D:\\PERSONAL\\VC++\\2016\\毕业论文\\原创 2016-05-28 11:37:08 · 1107 阅读 · 1 评论 -
OpenCV12(角点检测和进度条显示)
1.角点的检测主要的实现函数为cvGoodFeaturesToTrack2.进度条主要的实现函数为cvCreateTrackbar("ccc","Original",&value,count,0);//注意ccc是进度条的名称,可以显示在图上;Original是视窗的名称示例代码:#include "stdafx.h"#include "cv.h"#include "hig原创 2016-09-12 17:55:03 · 532 阅读 · 0 评论 -
OpenCV13(摄像机显示和图像捕获 + 控制台下获取时间)
1.摄像机测试程序,图像捕获// VS2012 + OpenCV2.4.9// 基于OpenCV的单个摄像机显示程序// 控制台,按"c"键捕获图像,按照时间格式命名,默认C盘// Alex 2016.9.14//#include "stdafx.h"#include "highgui.h"#include #include "time.h"using std::cou原创 2016-09-14 21:49:13 · 1779 阅读 · 0 评论 -
OpenCV14(检测和绘制棋盘角点)
使用的函数是cvFindChessboardCorners和cvDrawChessboardCorners要注意的是标准棋盘的的cvsize是7*7,要注意不需要使用额外的for循环来圈定角点,cvDrawChessboardCorners全部搞定。函数的参数按照VS的提示写好就可以啦~都比较直观。源代码:// calibrationtest.cpp : 定义控制台应用原创 2016-09-15 09:53:44 · 2820 阅读 · 0 评论 -
OpenCV15(摄像机标定)
1.源码(来源网上,作者未知。我添加了一些注释便于学习)#include "stdafx.h" #include "cv.h" #include "highgui.h" #include #include using namespace std; int main() { int cube_length=7;原创 2016-09-16 12:45:43 · 1431 阅读 · 0 评论 -
OpenCV16(人脸检测)
一、.源代码// 人脸识别haar.cpp : 定义控制台应用程序的入口点。// 本例来自网络// 修改了detect_and_draw_objects函数,第三个入口参数指定的是图像的金字塔高斯缩放等级,2表示长宽各变为原来的1/2// 2016.9.16 by Alex//#include "stdafx.h"#include "cv.h" #include "high原创 2016-09-16 15:37:39 · 493 阅读 · 0 评论 -
OpenCV18(图像拼接stitcher_detail)
从OpenCV2.4.0之后的版本中都包含有一个图像拼接的例程。路径:“...\opencv\sources\samples\cpp\stitcher_detail.cpp”本文就网上基于图像拼接的例程代码总结一下,基本上都是由此修改而来。以下给出原代,以及一个简单版本的例程。1.源代码(复制过来的)/*M////////////////////////////////////原创 2016-09-23 20:59:51 · 7070 阅读 · 1 评论 -
OpenCV20(flann一个简单的测试程序)
// flann测试.cpp : 定义控制台应用程序的入口点。///**来源于OpenCV官网 * @file SURF_FlannMatcher * @brief SURF detector + descriptor + FLANN Matcher * @author A. Huaman */#include "stdafx.h"#include "opencv2/opencv原创 2016-10-10 21:05:15 · 806 阅读 · 0 评论 -
OpenCV中parallel_for 和 parallel_for_学习笔记(加详细注释)
项目需要,正好遇到了parallel_for_()函数。发现其强大之处,特此记录一下。对原blog做一定的细节补充和详细介绍。转载自:http://blog.csdn.net/chouclee/article/details/8682561“OpenCV 从2.4.3开始加入了并行计算的函数parallel_for和parallel_for_(更准确地讲,parallel_for以转载 2016-10-10 21:13:05 · 7826 阅读 · 0 评论 -
opencv 设置任意形状的ROI的各种方法
按本方法设置的任意形状的ROI区域,不能带有修改的关联性,具体看代码。能有关联性的设置方法还没找到。。#include "stdafx.h"#include int main(){ std::string imageName("C:\\Users\\dept2-1\\Pictures\\Saved Pictures\\scenery.jpg"); cv::Mat src原创 2017-11-10 21:36:18 · 4590 阅读 · 0 评论