简介OpenCV

OpenCV是一个基于BSD许可(开源)发行的跨平台计算机视觉库,可以运行在Linux、Windows、Android和Mac OS操作系统上。它轻量级而且高效——由一系列 C 函数和少量 C++ 类构成,同时提供了Python、Ruby、MATLAB等语言的接口,实现了图像处理和计算机视觉方面的很多通用算法。示例代码说明

官网的页面虽然很土,但是示例代码还是很良心的:OpenCV Tutorials

本文运行的代码全部取自于opencv官网,提供了代码和傻瓜式运行教程~,从下载VS2017,下载OpenCV到配置,运行。即使不懂c++,照样可以玩转OpenCV的hello world。知乎编辑器效果有限,原文包括下载资源链接,请移步语雀:OpenCV—Hello world代码示例 · 语雀​www.yuque.com

主要的demo方法和简介如下:

//加载一张图片int load_one_image(string path);

//加载一张图、并转化为灰图保持至outpathint modify_and_save_one_image(string inpath, string outpath);

//介绍Mat - 基本图像容器int mat_the_basic_image_container();

//改变图像对比度和亮度int change_image_contrast_and_brightness(string path);

//利用OpenCV绘制基础图像(线段、圆、椭圆..)int basic_drawing();

//线性滤波平滑处理图像int smoothing_image(string path);

//侵蚀和膨胀处理图像int erode_and_dilate_image(string path);

//更多形态学处理int more_image_processing(string path);

//利用形态学处理提取图片中水平和垂直的线条int extract_horizontal_and_vertical_lines_form_image(string path);

//图像金字塔(采样、缩放)int image_pyramids(string path);

//基本阈值处理int basic_thresholding_operations(string path);

//图像线性滤波器int image_linear_filters(string path);

//给图像加上边框int add_border_to_image(string path);

//霍夫圆变换(利用其检测图像中的圆)int hough_circle_transform(string path);

//图像重映射(改变方向)int image_remapping(string path);

//给图像中的轮廓画出椭圆和边框int create_boxes_and_ellopses_for_contours(string path);

//失去焦点(模糊)图像恢复int out_of_focus_image_recovery(int argc, string imagepath, char *argv[]);

运行环境

首先,只需要win10的环境,配上VS2017,再下载OpenCV3.x的压缩包即可。VS2017

OpenCV3.X

示例图片下载 >>图片.rar(0.27 MB)

代码下载: >>代码.rar(18.66 kB)

效果展示

1.extract_horizontal_and_vertical_lines_form_image();OpenCV官网demo展示https://www.zhihu.com/video/1084827728997556224

2.smoothing_image()OpenCV官网demo展示https://www.zhihu.com/video/1084827679739625472

运行前准备

新建项目打开VS,文件->新建项目

选第一个即可。

我的项目名称为opencv_demo,即项目根目录。

将解压后的opencv包,放到任意路径,我一般习惯放在项目同级目录下。进入项目文件夹,双击项目名称.sln即可再VS里启动项目,如图所示,可以准备一些图片放在这里,待会测试opencv会用到。示例图片下载 >>图片.rar(0.27 MB)

发现,还有个同名的opencv_demo文件夹,再点击进去,将代码压缩包里的代码一起解压出来

然后选中这些文件,将.h开头的拖至VS右侧【头文件】下,其余的拖至【源文件】下

代码结构

代码压缩包里的代码分为两类:1.头文件 2.源文件

1.头文件即.h结尾的,此处即demohub.h,在这里定义了示例代码的方法名称、变量,类似Java种的接口

2.源文件,即核心的demo示例片段代码,一个.cpp对应一个Opencv的demo

源文件种opencv_demo.cpp是核心,在其中的main()方法种,调用demohub.h中定义的各种demo方法。代码下载:代码.rar(18.66 kB)

VS配置VC++目录配置

选择右侧,项目文件夹鼠标右键->属性,配置VC++目录中的【包含目录】和【库目录】

包含目录,要将opencv->build->include目录添加上去;库目录,即lib所在目录,这里需要opencv->build->x64->vc14->lib。包含目录:

D:\personalProject\AI\imageProcessing\opencv\build\include库目录:

D:\personalProject\AI\imageProcessing\opencv\build\x64\vc14\lib链接器配置

附加依赖项,新增:opencv_world340.lib

运行demo

在opencv_demo.cpp的main函数中,我们可以调用任意之前在demohub.h中声名的方法,每个方法对应一个.cpp示例代码

如上图所示:在main里运行smoothing_image(),这个demo方法的效果是:线性滤波平滑处理图像

cv python 样例_【CV实战】OpenCV—Hello world代码示例相关推荐

  1. echarts python源码_基于Django快速集成Echarts代码示例

    1.在线定制下载echarts 2.创建一个django项目或者在已有的项目 配置文件中确保数据库配置.static配置.与添加项目名到INSTALLED_APPS下. 配置静态文件目录static, ...

  2. 计算机系统软件和应用软件图,样例_计算机软件及应用_IT计算机_专业资料

    样例_计算机软件及应用_IT计算机_专业资料 (11页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 14.9 积分 实验一系统响应及系统稳定性实验目的:学 ...

  3. python画直方图代码-Python绘制直方图及子图的方法分析(代码示例)

    本篇文章给大家带来的内容是关于Python绘制直方图及子图的方法分析(代码示例),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 1.直方图的绘制也需要用到matplotlib下的py ...

  4. python中formatter的用法_Python pyplot.FuncFormatter方法代码示例

    本文整理汇总了Python中matplotlib.pyplot.FuncFormatter方法的典型用法代码示例.如果您正苦于以下问题:Python pyplot.FuncFormatter方法的具体 ...

  5. python中font的用法_Python font.nametofont方法代码示例

    本文整理汇总了Python中tkinter.font.nametofont方法的典型用法代码示例.如果您正苦于以下问题:Python font.nametofont方法的具体用法?Python fon ...

  6. python 数据结构转换层_[mcj]使用OpenCV深度学习进行性别和年龄分类(C++/Python)...

    在本教程中,我们将讨论应用于面部的深度学习的有趣应用.我们将估计年龄并从单个图像中找出该人的性别.该模型由Gil Levi和Tal Hassner训练.我们将简要讨论本文的主要思想,并提供有关如何在O ...

  7. python画字母代码_字母大小写如何python3中用代码表示?

    在英文的书写中,如果是开头的字母是需要区分大小写的,但是其中的更改大小写方法不适用于我们所学的python中.我们想要对字母进行大小写的更改,需要通过一些函数代码来对字母进行改变.没有接触过的小伙伴可 ...

  8. python中type(12.34)_Python typing.TYPE_CHECKING属性代码示例

    本文整理汇总了Python中typing.TYPE_CHECKING属性的典型用法代码示例.如果您正苦于以下问题:Python typing.TYPE_CHECKING属性的具体用法?Python t ...

  9. python duplicated函数_Python Pandas Dataframe.duplicated()用法及代码示例

    Python是进行数据分析的一种出色语言,主要是因为以数据为中心的python软件包具有奇妙的生态系统. Pandas是其中的一种,使导入和分析数据更加容易. 数据分析的重要部分是分析重复值并将其删除 ...

最新文章

  1. 未来的黑科技计算机作文简写,写一篇英文作文。“未来计算机的发展”
  2. Lr(2)-脚本调试之“集合点” 和 “事务”
  3. python好用-Pyzo -- 好用的 Python 轻量级 IDE
  4. macd java 源代码_MACD交易系统原理、用法及源代码
  5. Redis实战(六):Redis的集群:AKF,主从复制的概念引入,CAP,Sentinel 哨兵
  6. java程序大笨钟怎么打,L1-018.大笨鍾(Java)PAT團體程序設計天梯賽-練習集
  7. 基于windows使用fabric将gitlab的文件远程同步到服务器(本地)
  8. lisp 回执多段线_多段线上加点的LISP程序源码
  9. 《玩转Python轻松过二级》配套视频免费观看地址
  10. 一些实用的Chrome插件
  11. 灵眸action_DJI OSMO Action 灵眸运动相机
  12. 利用CUTFTP Tranfer Engine开发.NET FTP客户端
  13. 谷粒商城:06. 前端开发基础知识
  14. Postman安装使用
  15. 解决百度地图生成器添加标注后图标不显示的问题
  16. 旧版创维电视怎么投屏?不用数据线就能投屏的方法
  17. 「BZOJ1597」[Usaco2008 Mar] [TYWZOJ1482] 土地购买
  18. 神经网络算法的关键参数,神经网络计算方法
  19. 十二星座谁最不会顾及别人感受?
  20. [MvcCore]记录部署好的应用程序突然无法访问的一次蹩脚经历!

热门文章

  1. 每日一皮:完美的配合...虽然有点怪...
  2. ES 在数据量很大的情况下(数十亿级别)如何提高查询效率?
  3. Kubectl 的替代品:kubeman
  4. Logback中使用TurboFilter实现日志级别等内容的动态修改
  5. suse 安装mysql5.6_SuSE11安装MySQL5.6.40:RPM安装方式
  6. 做diff_Vue3.0时代你必须了解的:diff算法原理和优化
  7. 单独的plsql链接数据库
  8. CVPR 2021 论文大盘点-行人技术篇
  9. mxnet优化器 SGD_GC
  10. Hyper-v3.0里无法压缩虚拟硬盘!虚拟机为Linux,硬盘为VHDX