当前位置: 首页 > news >正文

郑州做网站hnqfu商业授权书

郑州做网站hnqfu,商业授权书,如何做内部网站,网站建设相关职业岗位《Opencv3编程入门》学习笔记 记录一下在学习《Opencv3编程入门》这本书时遇到的问题或重要的知识点。 第二章 OpenCV 官方例程引导与赏析 openv官方提供的示例程序:具体位于..\opencv\sources\samples\cpp ..\opencv\sources\samples\cpp\tutorial_code路径下存…

《Opencv3编程入门》学习笔记

记录一下在学习《Opencv3编程入门》这本书时遇到的问题或重要的知识点。

第二章 OpenCV 官方例程引导与赏析

openv官方提供的示例程序:具体位于..\opencv\sources\samples\cpp
在这里插入图片描述..\opencv\sources\samples\cpp\tutorial_code路径下存放着和官方教程配套的示例程序

一、opencv OpenCV 官方例程引导与赏析

可以自己动手运行一下官方的示例程序,书上的有的具体地址都没给。

(一)彩色目标跟踪:Camshift

程序的用法是根据鼠标框选区域的色度光谱来进行摄像头读入的视频目标的跟踪。
详见目录:..\opencv\sources\samples\cpp\camshiftdemo.cpp
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

(二)光流:optical flow

光流法是目前运动图像分析的重要方法,包含了目标运动信息。
只有官方demo运行图,没有具体地址。
在这里插入图片描述

(三)点跟踪:lkdemo

程序运行后,会自动启用摄像头没,这时按键盘上的"r"键来启动自动点跟踪,便可以看到如图2.7所示的效果图。而我们在摄像头中移动物体,可以看到物体上的点随着物体一同移动,如图2.8所示。
详见目录:..\opencv\sources\samples\cpp\lkdemo.cpp
在这里插入图片描述

(四)人脸识别:Camshift

运行程序,将自己的脸对准摄像头,或者放置一张照片对准摄像头任其捕获,便可以发现程序准确地识别出了人脸,并用彩色的圆将脸圈出。
详见目录:..\opencv\sources\samples\cpp\tutorial_code\objectDetection
还需要将..\opencv\sources\data\haarcascades路径下的haarcascade_eye_tree_eyeglasses.xmlhaarcascade_frontalface_alt.xml复制到和源文件同一目录下,才能正确运行。
相机不好使…效果图如书上所示:
在这里插入图片描述

(五)支持向量机引导

只有官方demo运行图,没有具体地址。
第一个程序是使用CvSVM::train函数训练一个SVM分类器。
在这里插入图片描述
第二个程序主要用于讲解在训练数据线性不可分时,如何定义支持向量机的最优化问题。
在这里插入图片描述

二、开源的魅力:编译OpenCV源代码

(一)下载安装CMake

官网下载地址:https://cmake.org/

在这里插入图片描述
打开:点击快捷方式或进入安装路径D:\software\CMake\bin,找到cmake-gui.exe运行。
在这里插入图片描述

(二)使用CMake生成OpenCV源代码工程的解决方案

  • 点击Browse Source按钮,选择D:/software/opencv/sources(opencv安装时源代码的存储路径)
  • 点击Browse Build按钮,选择D:/programming/opencv/Solution(自定义路径)
  • 点击Configure按钮
    默认选择对应版本的Visual Studio编译器,默认就行(我这里没有vs10,会报错,待解决)
    在这里插入图片描述

在这里插入图片描述
点击finish就会生成对应的VS2010的sln解决方案。
看到进度条读到最后,出现Configuring done就完成了。
在这里插入图片描述

  • 第二次Configure。再次单击Configure按钮
  • 在这里插入图片描述
  • 单击Generate。生成最终的解决方案,出现Configuring done就完成了。解决方案放在第二步我们选择的自定义路径下。
    在这里插入图片描述
    在这里插入图片描述

(三)编译OpenCV源代码

打开"OpenCV.sln"解决方案包含67个项目的解决方案
在这里插入图片描述
可以点击任意一个我们感兴趣的项目,查看源代码并调试。

三、“opencv.hpp”头文件认知

opencv.hpp包含了OpenCV各模块的头文件。

#ifndef __OPENCV_ALL_HPP__
#define __OPENCV_ALL_HPP__#include "opencv2/core/core_c.h"
#include "opencv2/core/core.hpp"
#include "opencv2/flann/miniflann.hpp"
#include "opencv2/imgproc/imgproc_c.h"
#include "opencv2/imgproc/imgproc.hpp"
#include "opencv2/photo/photo.hpp"
#include "opencv2/video/video.hpp"
#include "opencv2/features2d/features2d.hpp"
#include "opencv2/objdetect/objdetect.hpp"
#include "opencv2/calib3d/calib3d.hpp"
#include "opencv2/ml/ml.hpp"
#include "opencv2/highgui/highgui_c.h"
#include "opencv2/highgui/highgui.hpp"
#include "opencv2/contrib/contrib.hpp"#endif

四、命名规范约定

代码一定要规范!!!
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

五 、argc与argv参数疑惑(实际中不怎么使用)

(一)初识main函数中的argc和argv

arg指的是参数

  • ragc为证书,用来统计运行程序时送给main函数的命令行参数的个数;
  • *argv[]:为字符串数组,用来存放指向字符串参数的指针数组,每一个元素指向一个参数。
//官方最标准的main函数写法:
int main(int argc,char *argv[])
{
const char* imagename = argc > 1 ? argv[1] : "lena.jpg";
......
}

(二)argc,argv的具体含义

int main(int argc,char *argv[],char **env)

参数1:int类型的argc,为整型。用来统计运行程序时送给main函数的命令行参数的个数,在Visual Studio中默认值为1。
参数2:char*类型的argv[],为字符串数组,用来存放指向字符串参数的指针数组,各成员含义如下:

  • argv[0]指向程序运行的全路径名
  • argv[0]指向在DOS命令行中执行程序名后的第一个字符串
  • argv[0]指向执行程序名后的第二个字符串
  • argv[0]指向执行程序名后的第三个字符串
  • argv[argc]为NULL

参数3:char **类型的env,为字符串数组。很少用。

(三)Visual Studio中main函数的几种写法说明

1、【写法1】返回值为整型带参的main函数

int main(int argc,char** argv)
{//函数体内使用或不使用argc和argv都可行......return 1;
}

2、【写法2】返回值为整型不带参的main函数

int main(int argc,char** argv)
{//函数体内使用了argc或argv......return 1;
}

3、【写法3】返回值为void且不带参的main函数

int main()
{......return 1;
}

六 、格式输出函数printf()简析

(一)格式输出:printf()函数

int printf(const char *format,...);
即:
int printf("格式控制字符串",输出表列);

printf()函数用于指定输出格式。具体用法如下图所示:
在这里插入图片描述

在这里插入图片描述

(二)示例程序:printf函数的用法示例

示例:

#include <opencv2\opencv.hpp>
using namespace cv;void main()
{int a = 66,b = 88;printf("\n\t%d,%d\n",a,b); //输出十进制整型printf("\n\t%06d,%06d\n",a,b); //输出6位十进制整型printf("\n\t%c,%c\n",a,b); //按字符输出printf("\n\t结果为:a=%d,b=%d",a,b); //可以配合其他内容一同输出getchar(); //等待输出任意字符结束
}

结果图:

在这里插入图片描述

七、智能显示当前使用的OpenCV版本

#include <opencv2\opencv.hpp>
using namespace cv;int main()
{printf("\t当前使用的OpenCV版本为 OpenCV %s",CV_VERSION);getchar();
}

在这里插入图片描述

最后的最后,很喜欢书中的一句话:

授之以鱼,更授之以渔!

http://www.yayakq.cn/news/245248/

相关文章:

  • 如何提高网站用户体验建设云网站
  • 网站公司如何推广网站网页设计作业保护动物
  • 黑龙江省建设银行官网站首页广告设计与制作专业能考二建吗
  • 个旧市建设网站惠州市住房和城乡建设厅网站
  • 手机自适应网站建设维护网站制作专家
  • 集团网站开发公司电子商务网站建设 代码
  • 山西百度公司做网站的wordpress添加ga代码
  • 怎么帮助网站推广电子商务网站业务流程分析
  • 做网站代码上海电子通科技网站建设
  • 定制制作网站价格商丘房产网
  • wordpress修改网站菜单位置面试简历模板
  • 一天一元网站建设页面设计时最好使用一种颜色
  • .net网站开发源码注释工信部网站黑名单查询
  • 深圳做网站的价格西湖网站建设
  • 个人备案网站做购物网站可以不国际 网站制作公司
  • 网站优化怎么样八大建筑央企排名
  • 微信群发布网站建设制作网站能挣钱
  • 上市公司网站分析长春排查出阳性患者
  • 专门做spa的网站网站域名空间多少钱
  • 无锡网站推广经理网站源代码怎么生成网页
  • 响应式网站建设福州修改wordpress登录背景图
  • 建设厅网站如何查询企业信息网万网注册域名查询
  • 什么求职网站可以做几份简历家在深圳我在房网信息论坛
  • 现在都不用dw做网站了吗建设银行激活网站
  • 想开个网站不知怎样做温岭网站建设制作
  • 把网站做成app多少钱企业网站开发公司排名
  • 建材网站素材深圳手机端网站建设设计公司
  • 天津建设交培训中心网站wordpress supports
  • 高端制作网站设计怎么看一个网站什么程序做的
  • 怎么免费搭建一个网站淮北建筑大学