CPP+OpenCV
OpenCV相关代码整理
一叶孤舟渡
想来杭州华为工作的可以联系我~
展开
-
OpenCV教程
点击下面链接OpenCV教程原创 2020-10-20 15:16:22 · 220 阅读 · 0 评论 -
opencv-Canny()函数
canny对边缘进行检测,有三个原则:1、信噪比原则:以低的错误率检测边缘,也即意味着需要尽可能准确的捕获图像中尽可能多的边缘。2、定位精度原则:检测到的边缘应精确定位在真实边缘的中心。3、单位缘响应原则:图像中给定的边缘应只被标记一次,并且在可能的情况下,图像的噪声不应产生假的边缘。基本思想:首先对图像进行高斯滤波平滑图像,然后采用非极值抑制技术进行处理得到最后的边缘图像。实现步骤:1、高斯平滑滤波。为了去除噪声2、计算梯度强度和方向。边缘的最重要的特征是灰度值剧烈变化,如果把灰度值看成二元原创 2020-10-20 15:07:52 · 2000 阅读 · 0 评论 -
opencv中的Scalar()函数
Scalar()函数在OpenCV中是用来设置颜色的。比如下面这个例子:#include <opencv2/opencv.hpp>using namespace cv;int main(){ Mat rawImg(600, 500, CV_8U, Scalar(0)); imshow("1", rawImg); waitKey(0); return 0;}新建了一个类型为8位无符号整型的单通道,尺寸为600*500大小的一块图像,并给Scalar赋值(0)。显示图像如下:原创 2020-10-19 19:51:00 · 16076 阅读 · 2 评论 -
OpenCV的line()函数绘制直线
CV_EXPORTS_W void line(InputOutputArray img, Point pt1, Point pt2, const Scalar& color, int thickness = 1, int lineType = LINE_8, int shift = 0)参数解释:img: 要绘制线段的图像。pt1: 线段的起点。pt2: 线段的终点。color: 线段的颜色,通过一个Sc原创 2020-10-19 19:36:57 · 14574 阅读 · 2 评论 -
opencv图像变量赋值
图像变量赋值://A、B、C均有各自的矩阵头与指针//并且其指针指向统一个图像数据区域1、Mat A = imread("i.jpg");2、Mat B; B = A;改变其中一个变量,会影响其余两个变量的值。//A、B、C三个图像不仅有着各自的矩阵头与指针//并且三个图像的数据区域地质也是不同的//对其中一个操作不会影响另外两个。Mat A = imread("i.jpg");Mat B, C;3、B = A.clone();4、A.copyTo(C);...原创 2020-10-19 19:15:50 · 1156 阅读 · 0 评论 -
OpenCV-模板匹配
/******************************************************************** 创建日期: 2020/10/14 创建时间: 12:10 文件名字: C:\Users\17806\Desktop\靶标特征点提取\templateMatching\getPoints.cpp -------------------------------------- 文件功能: ------------原创 2020-10-14 14:41:48 · 283 阅读 · 0 评论 -
OpenCV的形态学操作
/******************************************************************** 创建日期: 2020/10/06 创建时间: 18:30 文件名字: C:\Users\17806\Desktop\M\Project1\Project1\test.cpp ------------------------------ 文件功能: -------------------.原创 2020-10-06 18:32:58 · 177 阅读 · 0 评论 -
opencv-对比度亮度调节
/******************************************************************** 创建日期: 2020/09/23 创建时间: 14:33 文件名字: C:\Users\17806\Desktop\openCV\HelloOpenCV\HelloOpenCV\hellloOpenCV.cpp ------------------------------ 文件功能: 第一个opencv测试程序原创 2020-09-28 21:14:05 · 163 阅读 · 0 评论 -
opencv鼠标操作
/******************************************************************** 创建日期: 2020/09/23 创建时间: 14:33 文件名字: C:\Users\17806\Desktop\openCV\HelloOpenCV\HelloOpenCV\hellloOpenCV.cpp ------------------------------ 文件功能: 第一个opencv测试程序原创 2020-09-23 19:55:17 · 183 阅读 · 0 评论 -
opencv线性混合实例
/******************************************************************** 创建日期: 2020/09/23 创建时间: 14:33 文件名字: C:\Users\17806\Desktop\openCV\HelloOpenCV\HelloOpenCV\hellloOpenCV.cpp ------------------------------ 文件功能: 第一个opencv测试程序原创 2020-09-23 19:07:26 · 165 阅读 · 0 评论 -
opencv一个好玩的读取摄像头的例子
/******************************************************************** 创建日期: 2020/09/23 创建时间: 14:33 文件名字: C:\Users\17806\Desktop\openCV\HelloOpenCV\HelloOpenCV\hellloOpenCV.cpp ------------------------------ 文件功能: 第一个opencv测试程序原创 2020-09-23 15:29:09 · 233 阅读 · 0 评论 -
opencv轮廓提取
#include<iostream>#include<opencv2\opencv.hpp>#include<opencv2\highgui\highgui.hpp>#include<opencv2\imgproc\imgproc.hpp>int main(){ //打开要识别字符的图像 IplImage *image = cvLoadImage("../../hello.png"); if (image == NULL) { std:原创 2020-08-24 21:26:51 · 668 阅读 · 0 评论 -
IplImage与Mat互相转换
(1) IplImage 转 Mat:IplImage* image = cvLoadImage( “lena.jpg”);Mat mat=cvarrToMat(image);(2)Mat转IplImage:IplImage img = IplImage(mat);原创 2020-08-24 20:59:08 · 2002 阅读 · 0 评论 -
opencv运行,设置不弹出cmd窗口
main()前添加下面代码#pragma comment( linker, "/subsystem:\"windows\" /entry:\"mainCRTStartup\"" )原创 2020-08-20 16:53:22 · 535 阅读 · 0 评论 -
opencv(13)ROI区域图像叠加和图像混合
感兴趣区域:ROI在图像处理领域,我们常常需要设置感兴趣区域(ROI,region of interest)来专注或者简化工作过程,也就是从图像中选择一个图像区域。定义ROI区域的两种办法:①使用表示矩形区域的Rect,指定矩形左上角坐标和矩形的长宽,定义一个矩形区域。②指定感兴趣行或列的范围(range),Range是指从起始索引到终止索引(不包括终止索引)的一连段连续序列,cRange...原创 2020-04-07 23:06:51 · 634 阅读 · 1 评论 -
opencv(12)计时函数
在matlab中我们可以使用tic;time1 = clock;……time2 = clock;toc;来获得程序运行得时间。在opencv中,利用getTickCount()和getTickFrequence()getTickCount()函数返回Cpu自某个事件以来走过得始终周期数getTickFrequence()函数返回Cpu一秒钟所走过得始终周期其。两者做除法求得...原创 2020-04-07 11:40:16 · 611 阅读 · 0 评论 -
opencv(11)颜色空间转换:cvtColor()函数
cvtColor()函数是opencv里的颜色空间转换函数,可以实现RGB颜色向HSV,HSI等颜色空间的转换,也可以转换成灰度图像。函数定义为:void cvtColor(srcimage,dstimage,int code,int dstCn=0);第一个参数是输入图像第二个参数是输出图像第三个参数是颜色空间转换的标识符第四个参数为目标图像的通道数,若该参数是0,表示目标图像取源...原创 2020-04-07 10:32:01 · 1819 阅读 · 0 评论 -
opencv(10)Mat
基础图像容器Mat我们可以通过各种各样的方法从现实世界获取数字图像,比如相机。通常由显示屏上看到的都是真实而漂亮的图像,但是这些图像再转化到我们的数字设备中是,记录的确实图像中的每个点的数值。其实,计算机中显示的图像是一个包含众多强度值的像素点的矩阵。Mat是一个类,由两个数据部分组成:矩阵头(包含矩阵尺寸、存储方法、存储地址等信息)和一个指向存储所有像素值的矩阵(根据所选存储方法不同,矩阵可...原创 2020-04-06 22:33:56 · 192 阅读 · 0 评论 -
opencv(9)输入,简单处理,保存
#include <opencv2/core/core.hpp> #include <opencv2/highgui/highgui.hpp> using namespace cv; //包含cv命名空间int main(){ //图像载入和显示 Mat School = imread("LYU.jpg"); namedWindow("羲之湖", 0);...原创 2020-04-06 20:42:09 · 146 阅读 · 0 评论 -
opencv(8)imread()函数
imread()函数用于读取文件中的图片到opencv中,其定义为:Mat imread(const string& filename, intflags = 1);第一个参数,const string&类型的filename,填入我们需要载入的图片路径名。第二个参数,int类型的flags,为载入标识,它指定一个加载图像的颜色类型,默认为1,所以有时候这个参数在调用的时候...原创 2020-04-06 20:05:10 · 368 阅读 · 0 评论 -
opencv(7)命名空间CV::
OpenCV中的C++类和函数都是定义在命名空间cv中的,有两种方法可以访问。第一种方法:在代码开头的适当位置加上using namespace cv;这句代码,规定程序位于此命名空间中。第二种方法:是在使用OpenCV的每一个类和函数时,都加上cv::命名空间。刚接触opencv的时候,每一个类前都加上cv::,真的感觉好烦啊。所以还是建议在代码开头加上using namespace...原创 2020-04-06 19:46:55 · 1390 阅读 · 0 评论 -
opencv(6)格式化输出函数printg()
printf函数时标准的C语言函数,并非OpenCV中的函数。在C语言中包含在studio.h中,在OpenCV中包含在opencv.hpp中。printf()是我们经常用到的格式输出函数,其关键字最末一个字母f即为“格式”(format)之意,其功能是按用户指定的格式,把指定的数据显示到窗口中。OpenCV中的调用格式:#include<opencv2/opencv.hpp>...原创 2020-04-06 19:37:41 · 746 阅读 · 0 评论 -
opencv(5)int main(int argc,char** argv)
刚刚入门opencv,经常会在示例程序中见到argc和argv这两个参数。argc和argev中的arg指的是“参数”的意思,即英文单词argument,argument counter和argument vector。顾名思义,argc为整数,是用来统计运行程序时送给main函数的命令行参数的个数。而argv为字符串数组,用来存放指向字符串参数的指针数组,每一个元素指向一个参数。argc和a...原创 2020-04-06 19:29:00 · 277 阅读 · 0 评论 -
opencv(4)边缘检测示例
#include <opencv2/opencv.hpp> //highgui模块头文件#include <opencv2/imgproc/imgproc.hpp> //图像处理头文件using namespace cv; //包含cv命名空间int main() //控制台应用程序的入口函数,我们的函数从这里开始{ //载入原图 Mat srcImage =...原创 2020-04-06 18:36:23 · 404 阅读 · 0 评论 -
opencv(3)均值滤波
#include <opencv2/highgui/highgui.hpp> //highgui模块头文件#include <opencv2/imgproc/imgproc.hpp> //图像处理头文件using namespace cv; //包含cv命名空间int main() //控制台应用程序的入口函数,我们的函数从这里开始{ //载入原图 Mat s...原创 2020-04-06 18:27:14 · 266 阅读 · 0 评论 -
opencv(14)图像腐蚀
#include <opencv2/highgui/highgui.hpp> //highgui模块头文件#include <opencv2/imgproc/imgproc.hpp> //图像处理头文件using namespace cv; //包含cv命名空间int main() //控制台应用程序的入口函数,我们的函数从这里开始{ //载入原图 Mat s...原创 2020-04-06 18:21:25 · 266 阅读 · 0 评论 -
(2)图像显示
在Opencv中,图像显示非常简单,只需要用imread函数载入到图像存储数据结构Mat类中,然后用imshow函数显示即可。打开Visual Studio 2015,配置的opencv版本是3.4.2。①新建一个项目,新建一个cpp文件。②在vs里面编写如下代码:#include <opencv2/opencv.hpp>using namespace cv; //包含cv命...原创 2020-04-06 17:58:17 · 253 阅读 · 0 评论 -
(1)Opencv常用的几个头文件
1、core—核心功能模块~Opencv基本数据结构~绘图函数~数组操作相关函数…2、imgproc—图像处理模块~图像滤波~图像几何变换…3、highgui—高层GUI图形用户界面~媒体的输入输出~视频捕捉、图像和视频编码解码~图形交互界面的接口…4、calib3d—相机校准、三维重建相关...原创 2021-02-24 18:32:42 · 449 阅读 · 0 评论