随笔分类 -  OpenCV

摘要:背景 对图像进行点操作,来改变图像的亮度和对比度,原理如下图所示: 这里就出现了一个隐患,我们知道像素值的取值范围为(0,255),但按照上面的公式运算结果会超出取值范围,还有可能是非整数,所以需要用到saturate_cast模板函数,该函数的原理如下: if(data<0) data=0; el 阅读全文
posted @ 2019-07-22 14:46 pokeCode 阅读(1476) 评论(0) 推荐(0)
摘要:split() 通道分离用到split()函数,该函数用于将多个通道数组分离成几个单通道数组,该函数的C++版本有两个原型: void split(const Mat& src,Mat*mvbegin); void split(InputArray m, OutputArrayOfArrays mv 阅读全文
posted @ 2019-07-15 15:20 pokeCode 阅读(158) 评论(0) 推荐(0)
摘要:线性混合操作是中二元的像素操作,公式如下: 在实现时可以用OpenCV中的addWeighted()函数,函数原型如下: void(InputArray src1,double alpha,InputArrary src2,double beta,double gamma,outputArray d 阅读全文
posted @ 2019-07-15 13:45 pokeCode 阅读(145) 评论(0) 推荐(0)
摘要:通过一个小练习熟悉OpenCV中ellipse()函数、circle()函数,line()函数的使用。 // #include<iostream> #include<opencv2/opencv.hpp> #include<opencv2/core/core.hpp> #include<opencv 阅读全文
posted @ 2019-07-12 15:29 pokeCode 阅读(517) 评论(0) 推荐(0)
摘要:Point类:点的表示 Point类表示的是一个二维坐标下的点,其图像由其图像坐标X和Y指定的2D点。用法示例如下: Point point1,point2; point1.x=10; point.y=12; point2=Point(12,23); 另外,Point_,Point2i,Point互 阅读全文
posted @ 2019-07-12 11:35 pokeCode 阅读(270) 评论(0) 推荐(0)
摘要:背景 图像在转化到我们的数字设备时,记录的都是图像中每个点的数值,我们所看到的图像都是有无数个包含了众多强度值的像素点矩阵。 使用Mat结构 自从OpenCV2.0版本中引入了C++接口,利用C++中的类,可以实现自动的内存管理。也就是说Mat是一个类,它由两个数据部分组成:矩阵头(包含矩阵尺寸、存 阅读全文
posted @ 2019-07-10 16:10 pokeCode 阅读(141) 评论(0) 推荐(0)
摘要:概述 在学习OpenCV库时没有使用最新版本,用的是OpenCV 2。在OpenCV2中最简单的图像载入和显示只需要两个函数——imread()和imshow()。 图像载入 imread() 函数原型如下: Mat imread(const string& filename, int flags= 阅读全文
posted @ 2019-07-10 10:19 pokeCode 阅读(545) 评论(0) 推荐(0)
摘要:背景 在看OpenCV源码时,在示例程序中经常出现argc和argv这两个参数,那么它俩的用途到底是啥呢? argc和argv中的“arg”指的是“参数”。 其中argc为整数,用来统计运行程序时送给main()函数的命令行参数的个数。而*argv[],为字符串数组,用来存放指向字符串参数的指针数组 阅读全文
posted @ 2019-07-09 18:11 pokeCode 阅读(490) 评论(0) 推荐(0)