![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
OpenCV 1.0接口
文章平均质量分 80
小狗爱晴天
这个作者很懒,什么都没留下…
展开
-
用OpenCV创建第一个图像
用OpenCV创建第一个图像#include #include #include using namespace cv;using namespace std;int main(){ Mat M(300,300,CV_8UC3,Scalar(0,255,255));//BGR imshow("image", M); waitKey(); r原创 2016-01-17 22:06:21 · 301 阅读 · 0 评论 -
cvPyrSegmentation() 图像金字塔分割
CVAPI(void) cvPyrSegmentation( IplImage* src, IplImage* dst, CvMemStorage* storage, CvSeq** comp, int level, double threshold1,原创 2016-01-25 18:49:31 · 465 阅读 · 0 评论 -
cvThreshold() 阈值化
OpenCV中阈值化的5种形式CVAPI(double) cvThreshold( const CvArr* src, CvArr* dst, double threshold, double max_value, int threshold_type );原创 2016-01-25 21:53:59 · 3851 阅读 · 0 评论 -
cvFilter2D() 卷积初步了解
简单定义:卷积是分析数学中一种重要的运算。设:f(x),g(x)是R1上的两个可积函数,作积分: 可以证明,关于几乎所有的实数x,上述积分是存在的。这样,随着x的不同取值,这个积分就定义了一个新函数h(x),称为函数f与g的卷积,记为h(x)=(f*g)(x)。 容易验证,(f * g)(x) = (g * f)(x),并且(f * g)(x)仍为可积函数。原创 2016-01-26 11:17:30 · 646 阅读 · 0 评论 -
cvSobel() 梯度和Sobel导数
是离散空间上的模拟导数,可以用于提取颜色变化大的边界CVAPI(void) cvSobel( const CvArr* src, CvArr* dst, int xorder, int yorder, int aperture_size CV_DEFAULT(3));xorder,yor原创 2016-01-26 16:43:01 · 1127 阅读 · 0 评论 -
cvLaplace() 拉普拉斯变换
cvLaplace() 从公式上来看感觉是cvSobel()的一个特殊应用,是对图像进行x和y方向的二阶偏倒的离散模拟应用起来很简单,参数基本不用解释CVAPI(void) cvLaplace( const CvArr* src, CvArr* dst, int aperture_size CV_DEFAULT(3) );原创 2016-01-26 17:16:53 · 534 阅读 · 0 评论 -
cvCanny() 边缘检测
CVAPI(void) cvCanny( const CvArr* image, CvArr* edges, double threshold1, double threshold2, int aperture_size CV_DEFAULT(3) );cvCanny()输入和输出都是单通道图像,因此彩色图需要用cvCvColor()把原创 2016-01-26 17:34:12 · 600 阅读 · 0 评论 -
cvCalcBackProject() 直方图反向投影匹配
具体原理不太懂,就是在一张图转换为直方图在另一张图上进行匹配?测试图: 程序:#include #include #include #include using namespace std;int main(){ IplImage *img_in = cvLoadImage("test01.jpg"); IplImage原创 2016-02-08 23:18:29 · 612 阅读 · 0 评论 -
cvCalcBackProjectPatch() 基于块的反向投影
使用在输入图像平面上的滑动块来设置目标图像上相应的像素(块中心)测试图像:find.jpgtest.jpg程序:#include #include #include using namespace std;void GetHSV(const IplImage *image , IplImage **h,IplImag原创 2016-02-10 12:20:56 · 415 阅读 · 0 评论 -
cvMatchTemplate() 模板匹配
不是基于直方图的匹配,使用起来非常方便函数原型:CVAPI(void) cvMatchTemplate( const CvArr* image, const CvArr* templ, CvArr* result, int method );image,原图像templ,需要查找的图块r原创 2016-02-10 14:55:34 · 2085 阅读 · 0 评论 -
cvHoughLines2() 霍夫线变换
霍夫线变换可以在灰度图中找到线段 函数原型:CVAPI(CvSeq*) cvHoughLines2( CvArr* image, void* line_storage, int method, double rho, double theta, int threshold,原创 2016-01-29 21:21:35 · 456 阅读 · 0 评论 -
OpenCV 直方图基础
CvHistogram结构体typedef struct CvHistogram{ int type; CvArr* bins; //存放每个灰度级数目的数组指针 float thresh[CV_MAX_DIM][2]; //均匀直方图 float** thresh2; //非均匀直方图 CvMatND mat; //直原创 2016-01-30 15:47:21 · 473 阅读 · 0 评论 -
cvEqualizeHist() 直方图均衡化(单通道)
感性认识:将图像对应的直方图频谱展开,使图像的颜色变深函数原型:CVAPI(void) cvEqualizeHist( const CvArr* src, CvArr* dst );测试图像:程序代码:#include #include #include using namespace std;int main(){ IplI原创 2016-02-03 19:29:44 · 736 阅读 · 0 评论 -
cvEqualizeHist() 直方图均衡化(多通道彩图)
思路:1.先把BGR彩图用cvSplit() 分解成三张单通道图像 2.分别对三张单通道图像进行cvEqualizeHist() 3.用cvAddWeight()或者cvMerge()将3张单通道图像重新合并成彩色图像测试用图:程序代码:#include #include #include using namespac原创 2016-02-03 19:50:14 · 2012 阅读 · 0 评论 -
cvCompareHist() 直方图匹配
比较两个直方图的相似程度函数原型和使用方法都很简单/* Compares two histogram */CVAPI(double) cvCompareHist( const CvHistogram* hist1, const CvHistogram* hist2,原创 2016-02-04 16:30:20 · 3868 阅读 · 1 评论 -
cvCalcEMD2() 直方图匹配
也是直方图匹配的一种形式函数原型:CVAPI(float) cvCalcEMD2( const CvArr* signature1, const CvArr* signature2, int distance_type,原创 2016-02-04 19:19:12 · 2608 阅读 · 1 评论 -
cvFindContours 提取外轮廓
#include #include #include "cv.h"#include "highgui.h"using namespace cv;using namespace std;int Otsu(IplImage* src) { int height=src->height; int width=src->width;原创 2016-03-29 16:22:42 · 948 阅读 · 0 评论 -
Opencv 傅立叶变换 傅立叶逆变换
作业要求:1.计算一个图片的傅立叶变换2.进行傅立叶逆变换 环境:Win7(64bits),Visual Studio2010,OpenCV 2.4.10 1.计算一个图片的傅立叶变换离散傅立叶变换的原理对一张图像使用傅立叶变换就是将它分解成正弦和余弦两个部分,也就是将图像从空间域转换到频域。二维图像的傅立叶变换可以用以下的数学公式表达:原创 2016-10-09 10:47:20 · 6766 阅读 · 1 评论 -
cvCreateTrackbar() 添加滚动条调节参数
cvCreateTrackbar() 添加滚动条调节参数还是OpenCV一个不错的工具,虽然不强大,但是也很好用,调试的时候可以不用反复地下载程序,而且可以观察到连续性的变化。函数原型:CVAPI(int) cvCreateTrackbar( const char* trackbar_name, const char* window_name,原创 2016-01-23 17:38:17 · 1039 阅读 · 0 评论 -
cvPyrUp() cvPyrDown() 图像金字塔
这两个函数感觉没什么特别的用处,不做过多的介绍附上图像和代码:#include #include using namespace std;int main(){ IplImage *img_in = cvLoadImage("test.jpg",3); IplImage *img_out_up = cvCreateImage(cvSize(im原创 2016-01-23 14:56:04 · 1013 阅读 · 0 评论 -
Iplimage设置感兴趣区域(ROI)
原图:关键函数:cvSetImageROI( img , cvRect(100,100,150,200) );//选定感兴趣区域cvAddS(img,cvScalar(200,0,0),img);//B,G,RcvResetImageROI(img);//释放感兴趣区域#includeusing namespace std;char *FileName原创 2016-01-19 15:58:21 · 1423 阅读 · 0 评论 -
cvFloodFill() 漫水填充算法
感性认识为:画图板的填充工具和photoshop的容差索套工具混合而成的一个工具 函数原型:CVAPI(void) cvFloodFill( CvArr* image, CvPoint seed_point, CvScalar new_val, CvScalar lo_diff CV_DEFAULT(cvScalarAll(0))原创 2016-01-22 22:12:23 · 1227 阅读 · 0 评论 -
cvDilate() 图像膨胀
cvDilate(),感性认识就是把图像连通起来函数原型:CVAPI(void) cvDilate( const CvArr* src, CvArr* dst, IplConvKernel* element CV_DEFAULT(NULL), int iterations CV_DEFAULT原创 2016-01-22 17:32:52 · 500 阅读 · 0 评论 -
cvErode() 形态腐蚀(可多次)
cvErode()可以对区域进行缩小 函数原型:CVAPI(void) cvErode( const CvArr* src, CvArr* dst, IplConvKernel* element CV_DEFAULT(NULL), int iterations CV_DEFAULT(1) );原创 2016-01-22 17:17:23 · 1100 阅读 · 0 评论 -
OpenCV五种平滑处理(模糊处理)
cvSmooth()函数原型:CVAPI(void) cvSmooth( const CvArr* src, CvArr* dst, int smoothtype CV_DEFAULT(CV_GAUSSIAN), int size1 CV_DEFAULT(3),原创 2016-01-21 10:24:23 · 3037 阅读 · 0 评论 -
cvSetMouseCallback()鼠标坐标、事件返回
CVAPI(void) cvSetMouseCallback( const char* window_name, CvMouseCallback on_mouse, void* param CV_DEFAULT(NULL));再要自己定义一个on_mouse()函数,把鼠标的事件、坐标、标志位、图像指针返回到on_mou原创 2016-01-20 18:14:14 · 446 阅读 · 0 评论 -
OpenCV基础几何绘图和文字输出
#include using namespace std;CvFont font;int main(){ IplImage *img = cvCreateImage( cvSize(320,480),IPL_DEPTH_8U,3 ); cvLine(img,cvPoint(10,10),cvPoint(100,100),cvScalar(0,255,255)); cvRecta原创 2016-01-20 11:46:42 · 377 阅读 · 0 评论 -
cvSplit(),cv图像颜色通道分割和融合
cvSplit(),用于颜色通道分离CVAPI(void) cvSplit( const CvArr* src, CvArr* dst0, CvArr* dst1, CvArr* dst2, CvArr* dst3 );cvSplit(),用于颜色通道分离原创 2016-01-20 10:10:54 · 1853 阅读 · 0 评论 -
cvResize() 图像放缩
有了这个工具,再也不用去下载那种放缩的软件了,自己轻轻地写几句即可,好开心。 函数原型:CVAPI(void) cvResize( const CvArr* src, CvArr* dst, int interpolation CV_DEFAULT( CV_INTER_LINEAR )); 使用方法:1.导入原图像;2.创建一幅原创 2016-01-22 23:30:28 · 695 阅读 · 0 评论 -
OpenCV读取、复制、保存图像
#include using namespace std;int main(){ IplImage *img1 = cvLoadImage("test.jpg"); IplImage *img2 = cvCreateImage( cvSize(320,480),IPL_DEPTH_8U,3 ); cvNamedWindow("Example1",CV_WINDOW_AUTOSI原创 2016-01-20 11:06:35 · 507 阅读 · 0 评论 -
at()函数遍历图像
函数 at()来实现读去矩阵中的某个像素,或者对进行赋值操作。 来实现读去矩阵中的某个像素,或者对进行赋值操作。 #include #include #include using namespace cv;using namespace std;int i,j;int main(){ Mat Gray_image(600,800,CV_8UC1); Mat Co原创 2016-01-18 21:18:58 · 825 阅读 · 0 评论 -
IplImage 加载图像
把任意大小的一幅JPG图像命名为"first.jpg",放入工程文件夹目录下。#includeusing namespace std;char *FileName="first.jpg";int main() { IplImage* img = cvLoadImage( FileName ); cvNamedWindow( "Example1", CV_WINDOW_AUTOS原创 2016-01-18 22:07:12 · 765 阅读 · 0 评论 -
cvCreateImage创建图像
#includeusing namespace std;int i,j;int main() { IplImage *img = cvCreateImage( cvSize(640,480),IPL_DEPTH_8U,3 ); for(i=0;iheight;i++) for(j=0;jwidth;j++) cvSet2D(img,i,j,cvScalar(0,255,原创 2016-01-19 12:56:11 · 1538 阅读 · 0 评论 -
IplImage结构体
头文件“types_c.h”中对IplImage结构体进行了定义typedef struct _IplImage{ int nSize; /* sizeof(IplImage) */ int ID; /* version (=0)*/ int nChannels; /* Most of原创 2016-01-19 13:09:48 · 625 阅读 · 0 评论 -
用指针修改图像像素
首先交待几个宏定义:char *imageData; /* Pointer to aligned image data. */imageData 指向存储图像数据的一块数据区。int widthStep; /* Size of aligned image row in bytes. */widthstep是指图像每行所占原创 2016-01-19 13:27:39 · 588 阅读 · 0 评论 -
图像处理——alpha融合
图像叠加有cvAdd(),cvAddS(),cvAddWeighted()函数,其中cvAddWeighted()是可以根据权重进行融合~~水印大概就是可以根据这个做出来的原图:test1test2 创建空白的img3和img4(对比cvAddWeighted()函数中的gamma的作用,但是发现不了明显的区别啊)CVAPI(void)原创 2016-01-19 20:39:13 · 1797 阅读 · 0 评论 -
cvMorphologyEx() 多种图像形态学
cvMorphologyEx() 感性认识:可以实现几种使用的处理,如:反色、去掉边缘的模糊点(非常使用,以后再也不用一点一点地用画画板去擦)函数原型:CVAPI(void) cvMorphologyEx( const CvArr* src, CvArr* dst, CvArr* temp, IplConvKerne原创 2016-01-23 13:23:04 · 2636 阅读 · 0 评论 -
OPENCV 直方图均衡化
作业要求:1.计算一个图片的直方图2.完成直方图的均衡化 环境:Win7(64bits),Visual Studio2010,OpenCV 2.4.10 1.计算一个图片的直方图直方图的概念设图像的灰度范围为[a,b],r为此灰度范围内的任一灰度级,p(r)为这幅图像中灰度级为r的像素出现的频率,可以看出p(r)是r的函数。该函数的图形称为这幅图像的直方图。原创 2016-09-27 16:34:41 · 914 阅读 · 0 评论