opencv
文章平均质量分 86
libing64
知乎主页 https://www.zhihu.com/people/qing-feng-77-90/
github主页 https://github.com/libing64
展开
-
sift实现的双目测距
最近一直在做双目测距的工作,今天终于获得一定的成果~拿出来与大家分享~一、源码下载:http://download.csdn.net/detail/renshengrumenglibing/3791149 二、硬件:三、匹配效果:四、基本算法 参见学习opencv中关于双目测距的算法最关键的Z = fx*T/(x2 - x1)五、基本参数:摄像头间距:T原创 2011-11-13 21:30:07 · 6236 阅读 · 15 评论 -
opencv图像处理9-图像金字塔
图像金字塔在分割和匹配方面有重要用途,其中在sift匹配中是重要的一环~~先看效果:PyrDown图像的下采样void cvPyrDown( const CvArr* src, CvArr* dst, int filter=CV_GAUSSIAN_5x5 );src输入图像.dst输出图像, 宽度和高度应是输入图像的一半 ,传入前必须已经完成初始化fil原创 2011-11-06 10:57:11 · 2425 阅读 · 0 评论 -
opencv新手注意
注意事项 1 看如下代码: CvScalar s = cvScalar(20.0);由于opencv不是真正的类,因此构造函数和类名不一致,构造函数的首字母是小写的!!!!!opencv乃是用C写的,因此尽管含有类的思想,但是不是类,而是结构,不是构造函数,而是内联函数。注意字母的大小写~2 如果仅是采用opencv而使用C语言编写程序,注意变量的定义在C语言中只能原创 2011-11-29 21:00:39 · 1589 阅读 · 1 评论 -
VC6.0图像处理2--图像的反色
源码下载:http://download.csdn.net/detail/renshengrumenglibing/3875522//这是读取图像后第一个程序,其实算法很简单,灰度值t ,反色后 t =255- t,关键是要高清楚,图像的实际数据存储在bmp文件的什么位置,怎么调出那些数据//希望看过0bmp文件分析和1浏览图片图片,那两个是这个的基础一 添加新菜单以及处理函数i原创 2011-08-31 23:21:00 · 1265 阅读 · 0 评论 -
VC6.0图像处理3--灰度变换
源码下载:http://download.csdn.net/detail/renshengrumenglibing/3875522//书接前文,我们继续看一些灰度操作,由于比较简单,我们多放几个函数//添加菜单以及处理函数 void CBMPViewerDoc::OnMenuitem32777() //灰度拉伸{// TODO: Add your command handler原创 2011-08-31 23:26:34 · 1100 阅读 · 0 评论 -
VC6.0图形处理5--几何变换
源码下载:http://download.csdn.net/detail/renshengrumenglibing/3875522//注意如何申请新的存储空间,存放处理后的图片,并利用memcpy,将数据copy给原来存储图像的结构void CBMPViewerDoc::OnMenuitem32788() //缩小变换{// TODO: Add your command h原创 2011-08-31 23:38:42 · 1062 阅读 · 0 评论 -
图像处理基本算法
使用openCV进行图像处理,总感觉并不能真正的理解图像处理的核心内容,因此我感觉对图像处理的理解才是关键。基本的反色操作,主要是了解OpenCV对图像数据的操作方式:指针如下:unsigned char * ptr;//定义指针for(int i = 0 ;i height;i++){ptr= (unsigned char*)img->imageData+ i*img->wi原创 2011-12-12 22:17:35 · 1655 阅读 · 0 评论 -
图像处理基本算法--仿射变换
几何空间变换和图像配准 几何空间变换又称为橡皮膜变换,因为他可以看做是在一幅橡皮膜上印制图像,然后根据一定规则拉伸橡皮膜。由两个基本操作组成:1)坐标的空间变换2)灰度内插最常用的是仿射变换一般形式如下:[x,y,1] = [v,w,1]*T [t11 t12 0] = [v,w,原创 2012-01-04 23:26:04 · 16156 阅读 · 6 评论 -
立体视觉算法-SGBM(一)
最近一直在学习SGBM算法,作为一种全局匹配算法,立体匹配的效果明显好于局部匹配算法,但是同时复杂度上也要远远大于局部匹配算法。算法主要是参考Stereo Processing by Semiglobal Matching and Mutual Information,里面有讲完整的算法实现。OpenCV中实际上是提供了SGBM类进行SGBM算法的实现。#include #includ原创 2013-01-21 16:16:27 · 18209 阅读 · 5 评论 -
图像处理基本算法 车牌识别与定位
进行车牌识别和定位首先要了解车牌的特征以及分类。车牌主要包括以下几种:蓝牌白字:普通小型车(其中包括政府机关专用号段、政法部门警车以外的行政用车)的牌照黄牌黑字:大型车辆、摩托车、驾校教练车牌照黑牌白字:涉外车辆牌照,式样和蓝牌基本相同白牌:政法部门(公安、法院、检察院、国安、司法)警车、武警部队车辆、解放军军车的牌照都是白牌警车:公安警车的牌照样式为[某·A123原创 2013-02-20 22:35:43 · 21629 阅读 · 3 评论 -
OpenCV笔记(一)-XML文件读写
平台: ubuntu10.04 + OpenCV2.3 + cmake 1. XML、YAML文件的打开和关闭XML\YAML文件在OpenCV中的数据结构为FileStorage,打开操作例如:string filename = "test.xml"; FileStorage fs(filename, FileStorage::WRITE); \\或者fs.ope原创 2013-03-22 10:28:56 · 3149 阅读 · 0 评论 -
加权拟合算法
#include#include#include"QSort.h"#include#include#define K (4.685 / 0.6745)#define NO_ERR 1#define cmp_pts( x, y ) ( x < y ) CV_IMPLEMENT_QSORT( floatQSort, float, cmp_pts )const int Coun原创 2013-03-26 13:02:07 · 3199 阅读 · 1 评论 -
自适应阈值分割之otsu算法
#include "opencv2/imgproc/imgproc.hpp"#include "opencv2/highgui/highgui.hpp"#include #include #define FLT_EPSILON 1.19209290E-07F // decimal constant//FLT_EPSILON the minimum positive number suc原创 2013-05-04 08:04:11 · 2773 阅读 · 2 评论 -
图像处理--多个平台下双目视觉的实现
VC6.0下的实现双目视觉见另一篇博客:http://blog.csdn.net/renshengrumenglibing/article/details/6884124这里主要讲解在opencv2.3+VS10下的实现,opencv2.1+VS10跟这个类似,但是需要逆序打开摄像头。先看效果:打开三个摄像头:两个USB摄像头一个联想自带的摄像头双目视觉实现总结:一、VC6原创 2011-11-05 17:46:12 · 3584 阅读 · 0 评论 -
opencv图像处理8-卷积
卷积是本章所讨论的很多转换的基础。先看看效果:抽象的说,这个术语意味着我们对图像的每一个部分所做的操作。从这个意义上讲,我们在第五章所看到的许多操作可以被理解成普通卷积的特殊情况。一个特殊的卷积所实现的功能是由所用的卷积核的形式决定的。这个核本质上是一个大小固定,由数值参数构成的数组,数组的标定点通常位于数组的中心。数组的大小被称为核支撑。单就技术而言,核支撑实际上仅仅由核原创 2011-11-06 10:46:12 · 5368 阅读 · 0 评论 -
图像处理-sift算法
sift是图像匹配的非常经典的算法,但是很复杂,要想自己拿C或C++实现很麻烦,如果只是使用的话,有国外某高人维护的sift库,前期只要自己能够调用即可,关键是要熟悉大致的流程,对sift库有个了解,具体的工作只要调用其中的函数即可。匹配效果:sift是图像匹配的非常经典的算法,但是很复杂,要想自己拿C或C++实现很麻烦,如果只是使用的话,有国外某高人维护的sift库,前期只要自己能够原创 2011-11-02 19:01:55 · 8167 阅读 · 14 评论 -
图像处理3--摄像头标定
这几天在做摄像机标定,主要参考了opencv的例程,但是上面还是有一些Bug的,另外摄像头读取的方式改用的directshow的CameraDS类。一、摄像机标定基本步骤道具的准备:有photoshop、画图之类的公工具自制棋盘,采用A3或A4打印出来,贴到电脑旁的某个位置。1 新建一个模拟棋盘,标明横向和竖向的角点个数我绘制的棋盘角点6*72 初始化参数,4个内参数,以及畸变原创 2011-10-22 08:29:42 · 4349 阅读 · 4 评论 -
opencv图像处理5--车辆检测
void CTrafficsampleDlg::OnOK() //读入视频并检测车辆{// TODO: Add extra validation here//此处添加图像处理的代码//CDialog::OnOK();IplImage *frame = NULL; //定义帧,每帧就是一张图 IplImage *B_part = NULL, *G_part =原创 2011-09-25 13:49:56 · 6379 阅读 · 8 评论 -
VC6.0图像处理0--bmp文件分析
//在我刚刚学习图像处理时,用的是Matlab,后来转战VC,刚开始时,看的书都是先构建一个类CDib类,将处理bmp文件的API封装到一个类里(现在感觉Microsoft没有将Dib处理函数封装进MFC是有一定道理的),但是构建类又十分复杂,难以入门,后来在我弄清楚bmp中到底有什么之后,使用API处理起来相当方便啊~//这是图像处理的很关键的一步,大家一定要搞得十分清楚,之后再处理时就会得原创 2011-08-31 23:14:07 · 1243 阅读 · 0 评论 -
图像处理1--VC6.0下directshow配置
注:网上转载,测试通过 DirectShow开发环境配置及测试例程 开发环境SDK:DirectX9.0b (Summer 2003)Visual C++ 6.0参考文档:SDK文档1) DirectShow->Getting Started->Setting Up the Build Environment2) DirectShow->DirectSh转载 2011-10-08 13:51:04 · 1092 阅读 · 0 评论 -
图像处理2--打开多个摄像头
使用双目视觉这里用到了opencv和directshow两个方面的内容,本次没有用到MFC。需要对编译器进行设置(opencv在图像处理方面很强大,但是在图像采集方面似乎只能采集一个摄像头,因此这里借用directshow进行双目图像的获取,之后就可以利用opencv进行处理)首先新建一个console应用程序,空工程,添加一个main.cpp一、与directshow有关的设置首原创 2011-10-18 13:05:19 · 8918 阅读 · 4 评论 -
opencv图像处理6--网球检测
void CBallsampleDlg::OnOK() {// TODO: Add extra validation here//CDialog::OnOK();IplImage*frame = NULL; //定义帧,每帧就是一张图 IplImage* B_part = NULL;IplImage* G_part = NULL;IplImage原创 2011-09-27 22:49:05 · 2829 阅读 · 1 评论 -
[置顶][置顶]opencv图像处理4--opencv下鼠标事件
#include#include#include//#include//鼠标事件CvPoint down;CvPoint up;CvRect rect;IplImage *dst;void on_mouse(int event,int x,int y,int flags,void *param){//鼠标事件分为两个部分,左键按下和左键弹起 I原创 2011-09-21 21:45:57 · 1701 阅读 · 2 评论 -
opencv图像处理2--打开图片并显示
//在opencv下图像的打开及显示极为简单,仅需调用几个小函数即可~~//需要注意的一点是opencv虽然含有类的思想,但确实是用C语言完成,C下没有类一说,因此那些构造函数其实是C下的内联函数,或者宏,仔细观察的话,就会发现,他的构造//函数和类名的首字母不一样,一个小写,一个大写。若把它当类来使,这点是极容易错的~//首先要配置opencv的环境,网上很多~这里就不赘述了原创 2011-09-20 00:08:05 · 1320 阅读 · 0 评论 -
[置顶]opencv图像处理3--opencv下使用滑动条
#include "cv.h"#include "highgui.h"#include #include void on_trackbar(int position){if( position == 0 ) {printf("the position is%d", position);} else {printf("the position is %原创 2011-09-21 21:12:37 · 999 阅读 · 0 评论 -
opencv图像处理1--IPlImage结构分析
IplImage结构由于OpenCV主要针对的是计算机视觉方面的处理,因此在函数库中,最重要的结构体是IplImage结构。IplImage结构来源于Intel的另外一个函数库Intel Image Processing Library (IPL),该函数库主要是针对图像处理。IplImage结构具体定义如下:typedef struct _IplImage {原创 2011-09-17 08:20:49 · 1416 阅读 · 0 评论 -
opencv图像处理7-打开大图
显示大图片,当图片较大时,可以通过鼠标拖动图片上下移动先看效果:由于opencv没有滑动条,无法像VC或者java那样直接滑动浏览,但是在图片上直接拖动也是一样的。拖动时通过捕获鼠标事件,记下按下和抬起的点,CvPoint first = cvPoint(0,0);CvPoint last = cvPoint(0,0);void on_mouse(原创 2011-11-05 23:33:41 · 1729 阅读 · 0 评论 -
Matlab风格的二维绘图函数Plot(OpenCV)
CPlot简介Matlab的plot函数非常的强大,进行数据显示的效果非常的好,但是经常使用Opencv的同学如果每次将计算之后的数据导入到Matlab里显示又比较麻烦,因此决定写一类似于plot的C函数,用于在OpenCV中进行数据显示。设计一个Plot类,项目位于github上https://github.com/libing64/CPlot* 采用泛型设计* 支持原创 2013-06-01 19:41:17 · 6202 阅读 · 6 评论