计算机视觉入门

一.OpenCV初识

1.什么是OpenCV
  • OpenCV:Open Source Computer Vision Library
2.什么是TensorFlow
  • 谷歌研发的第二代人工智能学习系统,依靠张量和数据图来进行计算
  • 即OpenCV适用的场景在TensorFlow上都适用

二.搭建OpenCV和TensorFlow一站式开发环境:Anaconda

1.什么是Anaconda
  • TensorFlow和OpenCV的开发平台
2.Mac下搭建Anaconda
  • 下载并安装anaconda软件
  • 下载并安装TensorFlow和OpenCV环境的配置
  • 在TensorFlow环境下,下载并安装notebook【以后Python语言在notebook下进行编辑】

三.测试案例Helloworld

1.搭建环境
  • 在Anaconda中的Environment create一个新的环境,命名为tensorflow
  • 在这个环境中安装tensorflow/opencv等相关库
  • 在Home中安装notebook并launch
2.编写hello tensorflow
  • 对于其他变量可以使用print直接打印,对于tensorflow只能借助session进行打印

  • 创建python文件并编写

    import tensorflow as tf
    hello = tf.constant('Hello tensorflow!')
    sess = tf.Session()
    print(sess.run(hello))
    #执行结果:Hello tensorflow!
    
  • 常量的定义tf.constant('Hello tensorflow!')

  • 创建sessionsess = tf.Session()

  • 打印print(sess.run(hello))

  • 通过验证,tensorflow插件安装没有问题

3.验证openCV插件安装没有问题
  • 创建python文件并编写

    import cv2
    print('hello opencv')
    #执行结果:hello opencv
    

四.利用搭建的环境实现图片的读取和展示

1.实现图片的读取和展示
  • 创建文件夹添加图片
  • 在文件夹中添加Python文件
2.编写python文件思路
  • opencv模块的引入
  • 调用API实现需要的功能(图片的读取与展示)
  • 程序的暂停stop(图片的读取是一瞬间的事儿,如果不停止则展示一下就会消失)
3.编写python文件
import cv2
img = cv2.imread('image0,jpg')#参数1:图片的名称 参数2:图片的类型(0-灰度图片,1-彩色图片)
#imread方法(返回图片的内容),具体操作如下
#1.方法实现图片的读取
#2.封装格式的解析
#3.数据解码
#4.数据的加载
cv2.imshow('image',img)#参数1:当前窗体的名称 参数2:需要展示的图片内容
cv2.waitKey(0)#实现程序的暂停

五.OpenCV第三方开发库

将OpenCV库的release版本下载下来从而查看对应的文件

1.模块介绍
  • 所有的文件夹代表OpenCV中比较重要的模块
  • calib3d模块:用于相机的校准和3d内容相关
  • core模块:记录openCV中基础数据类型,矩阵操作,绘图相关,几乎和OpenCV所有基础相关内容
  • dnn模块:和神经网络相关的模块
  • features2d:和图像及焦点检测相关
  • flann:和聚类相关,如聚类搜索算法等等
  • highgui:与图形相关交互的
  • imgcodecs和imgproc:描述与图像处理相关的,如图像的均衡化,颜色变换等
  • ml:机器学习模块(如SVM支持向量机等等)
  • objdetect:物体检测模块
  • photo:图片的处理,如图片的修复、去燥
  • shape很少用到
  • stitching:用于大图像拼接
  • video、videoio、videostab:三个video模块用于描述视频信息,如视频分解图像、图像合成视频等等

六.图片写入案例

1.图片读取案例的解析
  • imread方法的具体操作
    • 方法实现图片的读取
    • 封装格式的解析
    • 数据解码
    • 数据的加载
  • 常见的图片封装格式
    • jpg
    • png
  • 图片的封装格式通常分成两部分看待
    • 文件头【数据部分的解码信息及附加信息,解码器通过附加信息将图像还原成最原始的内容】
    • 文件数据【不是图片的原始数据,而是图片经过压缩编码之后的数据】
    • 不同的jpg/png的文件头和文件数据完全不同
  • 为什么要进行压缩编码?
    • 方便文件的存储和传输
2.根据自己需要的图片格式完成图片的写入功能
import cv2
img = cv2.imread('image0.jpg',1)
cv2.imwrite('image1.jpg',img)#参数1:保存的文件名 参数2:这里的img已经是解码之后的数据(原始数据)
#从而实现:创建了一个新的图片[即复制之前的图片]

七.不同图片质量保存案例

1.JPG图片格式的压缩实例代码
import cv2
img = cv2.imread('image0.jpg',1)
cv2.imwrite('imageTest.jpg',img,[cv2.IMWRITE_JPEG_QUALITY,0])#参数3:当前图片的质量,jpg质量在0~100,有损压缩,以牺牲图片质量为代价
2.PNG图片格式的压缩实例代码
  • png相对于jpg格式的压缩特点

    • jpg是有损压缩;png是无损压缩
    • jpg没有办法设置图片的透明度;png有一个透明度属性,修改rgb值时还可以修改图片的透明度
    • 对于jpg来说,数字越小,压缩比越高,图片质量损失严重,压缩范围0-100;对于png来说,数字越小,压缩比越低,压缩范围0-9
  • 实例代码

    import cv2
    img = cv2.imread('image0.jpg',1)
    cv2.imwrite('imageTest.png',img,[cv2.IMWRITE_PNG_COMPRESSION,0])#COMPRESSION设置压缩比
    

八.像素操作基础

图片是由无数个像素点组成

1.什么是像素点
  • 每一个像素点都可以使用RGB三种颜色分量来进行组合,如黄色由40%红色,40%绿色和40%组成,三种颜色深度是在0-255【8位,即2的八次方】
  • 像素:就是图片放大看到的一个个方块
  • 颜色深度:8bit的颜色深度表示的颜色范围在0-255,即256的三次方
2.像素点如何存储
  • 图片在计算机中以二进制的方式进行存储,如黄色203 203 9【保存在计算机中就是11001011 11001011 00001001】
3.图片的宽高
  • 如图片是640*480表示图片在水平方向上有640个像素点,垂直方向上有480个像素点
4.图片大小如何计算
  • 如一张图片是1.14M,宽度是720,高度是547
  • 位压缩图片的计算方法:1.14M = 720*547(得到一张图片上的点像素)*3(每一个像素上有3个rgb颜色分量)*8bit(每一个分量是8位的颜色深度)/8(单位B,从bit转化成B)整体转成M则是1.14
  • 对于PNG图片,每一个像素点除了RGB三个颜色分量之外,可能还有alpha通道,用于描绘图片的透明度
5.颜色存储格式
  • 我们通常见到的图片存储格式除了RGB之外,还有BGR
  • 什么是BGR?
    • BGR第一个像素值不是红色,而是蓝色
  • BGR中的b称为蓝色分量,g称为绿色分量,r称为红色分量,每一个颜色分量称之为一个颜色通道
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
4S店客户管理小程序-毕业设计,基于微信小程序+SSM+MySql开发,源码+数据库+论文答辩+毕业论文+视频演示 社会的发展和科学技术的进步,互联网技术越来越受欢迎。手机也逐渐受到广大人民群众的喜爱,也逐渐进入了每个用户的使用。手机具有便利性,速度快,效率高,成本低等优点。 因此,构建符合自己要求的操作系统是非常有意义的。 本文从管理员、用户的功能要求出发,4S店客户管理系统中的功能模块主要是实现管理员服务端;首页、个人中心、用户管理、门店管理、车展管理、汽车品牌管理、新闻头条管理、预约试驾管理、我的收藏管理、系统管理,用户客户端:首页、车展、新闻头条、我的。门店客户端:首页、车展、新闻头条、我的经过认真细致的研究,精心准备和规划,最后测试成功,系统可以正常使用。分析功能调整与4S店客户管理系统实现的实际需求相结合,讨论了微信开发者技术与后台结合java语言和MySQL数据库开发4S店客户管理系统的使用。 关键字:4S店客户管理系统小程序 微信开发者 Java技术 MySQL数据库 软件的功能: 1、开发实现4S店客户管理系统的整个系统程序; 2、管理员服务端;首页、个人中心、用户管理、门店管理、车展管理、汽车品牌管理、新闻头条管理、预约试驾管理、我的收藏管理、系统管理等。 3、用户客户端:首页、车展、新闻头条、我的 4、门店客户端:首页、车展、新闻头条、我的等相应操作; 5、基础数据管理:实现系统基本信息的添加、修改及删除等操作,并且根据需求进行交流信息的查看及回复相应操作。
现代经济快节奏发展以及不断完善升级的信息化技术,让传统数据信息的管理升级为软件存储,归纳,集中处理数据信息的管理方式。本微信小程序医院挂号预约系统就是在这样的大环境下诞生,其可以帮助管理者在短时间内处理完毕庞大的数据信息,使用这种软件工具可以帮助管理人员提高事务处理效率,达到事半功倍的效果。此微信小程序医院挂号预约系统利用当下成熟完善的SSM框架,使用跨平台的可开发大型商业网站的Java语言,以及最受欢迎的RDBMS应用软件之一的MySQL数据库进行程序开发。微信小程序医院挂号预约系统有管理员,用户两个角色。管理员功能有个人中心,用户管理,医生信息管理,医院信息管理,科室信息管理,预约信息管理,预约取消管理,留言板,系统管理。微信小程序用户可以注册登录,查看医院信息,查看医生信息,查看公告资讯,在科室信息里面进行预约,也可以取消预约。微信小程序医院挂号预约系统的开发根据操作人员需要设计的界面简洁美观,在功能模块布局上跟同类型网站保持一致,程序在实现基本要求功能时,也为数据信息面临的安全问题提供了一些实用的解决方案。可以说该程序在帮助管理者高效率地处理工作事务的同时,也实现了数据信息的整体化,规范化与自动化。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值