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

河南省建设工程质监总站网站网站运营维护中需要用到什么服务器

河南省建设工程质监总站网站,网站运营维护中需要用到什么服务器,如何降低网站的权重,企微app下载安装1.编程语言 Python 是一种泛用型的编程语言#xff0c;可以用于大量场景的程序开发中。根据基于谷歌搜 索指数的 PYPL#xff08;程序语言流行指数#xff09;统计#xff0c;Python 是 2019 年 2 月全球范围内最为流行 的编程语言 相比传统的 C、Java 等编程语言#x…1.编程语言 Python 是一种泛用型的编程语言可以用于大量场景的程序开发中。根据基于谷歌搜 索指数的 PYPL程序语言流行指数统计Python 是 2019 年 2 月全球范围内最为流行 的编程语言 相比传统的 C、Java 等编程语言Python 具备一些优势。 1较强的易读性。Python 是一种高级编程语言其在设计上更为接近人类使用的 自然语言英语。具备英语基础和少许编程基础的人可以很轻松地阅读 Python 代码。 2简洁的语法规则。Python 语言的设计哲学是“优雅”“明确”和“简单” 力图用最简洁的方式完成程序内容。相比于传统编程语言Python 通常可以用更短的语句 执行同样的功能。 3强大的可扩展性。由于 Python 是一个完全开放的编程语言环境其拥有大量强 大的扩展包例如数学计算包 NumPy、游戏开发包 pygame、机器学习包 TensorFlow 等。 正是因为这一特点Python 目前是人工智能编程的首选语言。 4便利的可移植性。Python 几乎可以运行于任何操作系统将 Python 代码移植 到 Windows、macOS、Linux 等不同环境中非常便利。 交互式编程是一种非常便利的 Python 编程方式常用于程序测试的场景。首先通过任 务栏打开树莓派的“终端”在其中输入“python3”并回车即可进入 Python 3 的交互式 编程环境 用 Geany 编辑器编写 Python 程序 虽然交互式编程环境可以很方便地输出语句的结果但它并不能将大段的程序内容存 储起来反复运行因此只适用于程序测试的场景。绝大多数情形下我们需要将完整的 Python 程序存储为 .py 格式的文件再调用它进行运行。 可以使用任意的文本编辑器编写 Python 程序。我们在后续的课程中统一使用树莓派系 统预装的轻量级文本编辑器 Geany 来编写 Python 程序。Geany 可在树莓派任务栏的开 始菜单中选择“编程”找到。             使用 Geany 编辑器的图标可以方便地进行文件的新建、打开、保存以及 Python 程序 的运行操作               打开 Geany 后我们先新建一个空白文档再单击文档→设置文件类型→脚本语 言→ Python 源文件将其设为 Python 程序文件 2.树莓派的 GPIO 接口 树莓派 3B 主控板可以通过上面的 40 个引脚连接电子设备输入或输出电信号。 3. 点亮一盏小灯  导入 Python 扩展包 要使用 Python 程序对 GPIO 连接的输入 / 输出设备进行控制需要用到一个名为 RPi.GPIO 的扩展包。在 Python 程序中许多功能被写在了一些额外的官方或第三方扩展 包中可以通过如下两种方式导入扩展包。 第一种方式为直接导入后面的“as 自定义名称”可以不写。不写时使用“扩展包 名 . 包内的函数或变量名”的形式可以调用包内预先设定好的函数或变量。若设定了自定义 名称则使用“自定义名称 . 包内的函数或变量名”的形式调用。 第二种导入方式则可以选择性导入包中设定的函数或变量导入多个函数或变量时需使 用逗号隔开。若使用“import *”则可导入包中的所有函数及变量。用这种方式导入扩展包时 我们可以直接用导入的函数或变量名来调用它们而不用再写包名。 中除了 1~40 的编号外每个 GPIO 引脚后面还有另一个编号。在 Python 程序中使用 GPIO 时需要指定程序应该使用哪一种编号方式。其设定方法是 树莓派的所有 GPIO 口既可以连接输入设备也可以连接输出设备因此需要事先设 定其为输入模式还是输出模式 模式有两种gpio.IN 代表这是一个输入设备gpio.OUT 代表这是一个输出设备。 例如对 LED 连接的 GPIO 接口进行设定的完整程序如下 设定 GPIO 接口输出高、低电平的语句为 电平状态只有两种gpio.HIGH 代表高电平gpio.LOW 代表低电平。 为了让程序能控制小灯亮灭一段时间需要引入 Python 中 time 扩展包的 sleep 函数。 sleep 后的参数表示需等待的时间单位为秒。 4.用按钮控制灯的状态  与 LED 模块类似我们也要先设定按钮连接的 GPIO 接口的输入 / 输出状态。 我们可以通过一个简单的函数来读取接口的电平状态 这个函数可能得到两个返回值gpio.HIGH高电平或 gpio.LOW低电平。我 们可以通过判断按钮的电平状态来执行不同的操作。例如在按钮被按下时将小灯点亮否 则将小灯熄灭。 但是这个程序并不能真正实现预想的功能因为这段程序仅仅在程序刚刚运行的一瞬间 进行按钮按压状态的读取与判断。若要实现持续判断的功能需要增加一个 while 循环结构。 4.1两个按钮的控制与逻辑运算符  将这个逻辑转化为程序 但这样编写的程序看上去有一点复杂。在需要同时判断多个条件的真假时我们可以通 过逻辑运算符来处理它们的关系。 逻辑运算符有 and与、or或、not非三种。 与运算符 and用 and 连接两个条件当两个条件都为真时返回真有一个为假时 返回假。等同于我们常说的“并且”。 或运算符 or用 or连接两个条件当两个条件有一个为真时返回真都为假时返回假。 等同于我们常说的“或者”。 非运算符 not在条件前加上 not可以得到与条件真假相反的结果。等同于对条件加 上了“不”字。 上面程序的功能实质上是按钮 1 被按下并且按钮 2 被按下时点亮小灯否则熄灭小灯。 所以可以利用逻辑运算符编写以下程序。 4.2抢答器的完整示例程序  5.机器视觉与图像识别 人工智能系统的一个重要发展方向是对人类机能的模拟因而学会“看”对人工智能而 言是非常关键的一步。 在分析机器如何“看”之前我们先简单了解一下人类的视觉机制。我们天生就能使用 眼睛接收光线从而可以看到五彩斑斓的世界这是因为人眼的视觉细胞中存在分别对红色、 绿色、蓝色敏感的 3 种细胞从而可以识别出这 3 种颜色并可以通过它们的融合识别其 他颜色。 因此红、绿、蓝 3 种颜色被称为视觉三原色它们的任意组合可以构成可见光的所 有颜色。 人工智能视觉的关键就在于如何从图像中分析出各种物体的颜色、形状等基本信息进 而分析它们所蕴含的意义。这个过程就被称为图像识别或者机器视觉。 6.机器视觉技术的常见应用  1.相似图像搜索 2009—2010 年谷歌、百度等搜索公司相继推出了以图搜图的图片搜索功能。这一 功能可以分析图片上的特征信息并从互联网上找到与该图片相似的图片。现在各类手机 购物 App 也可以以类似的原理实现拍摄商品照片找到相似商品的功能。 2.文字识别 很多电子设备都可以使用 OCR光学字符识别技术识别纸质资料上的文字目前较 为成熟的 OCR 技术可以以较高的成功率读取手写文字。 3.面部识别 当前的智能手机上大多搭载了利用手机摄像头结合人工智能算法实现的面部识别功能。 结合这一功能智能手机可以以较高的安全性进行解锁、支付等操作。 除此以外面部识别还被广泛应用于公共安全领域不单可以在特定场所保护公共安全 还可以帮助侦破刑事案件。 4.目标检测 人工智能图像识别的一个关键是识别图像中的物体并对它们进行分类。现在随着人工 神经网络技术的发展我们可以更轻松地使用一些开源的神经网络工具“训练”AI 识别物体。 图 5.8 所示为目标检测工具识别指定种类的物体。 7.认识 OpenCV  通过前面的学习我们知道计算机等电子设备中存储的图像信息实质上是以像素排列 的颜色值信息也就是大量的数据。要从图像信息中得到有意义的信息就必须对这些数据 进行分析与处理。 计算机科学家和相关领域的从业者在过往几十年时间内发展出了大量用于处理计算机图 像信息的数学方法。开源的计算机视觉库 OpenCV 内置了大量这类数学方法可以帮助我 们分析图像信息。 7.1OpenCV 简介 英特尔公司于 1999 年发起了一个以计算机图像处理为主题的开源程序库项目OpenCV开源计算机视觉库它已成为目前影响力最大 的一个开源计算机视觉库。OpenCV 在面部识别、手势识别、 目标识别、增强现实AR等问题上都能发挥重要的作用。 2009 年OpenCV 发布了其第一个第二代正式版本。 自 2012 年起一个专门的非营利组织负责 OpenCV 项目 的后续支持。OpenCV 2015 年发布其第三代2018 年发 布到第四代。在我们后续的项目中将使用目前应用最为广 泛的 OpenCV 第三代版本。 OpenCV 本体以 C 程序语言编写但也提供了包括 Python 在内的其他编程语言的扩展接口。 视频的帧与分辨率  OpenCV 不单可以用于处理静态的图像信息其很重要的一个目标是对实时的动态图 像进行处理。 我们可以运用摄像头来捕获动态的视频图像。摄像头的基本成像原理与数码相机完全相 同只不过它可以实时以较短的时间间隔连续获取图像信息。这些图像信息按时间顺序排列 起来就组成了我们常说的视频。 我们看到的视频实际上都是由若干张静态图片连续播放而成的。人类大 脑的视觉系统会将连续播放的相似图片自动连接成连贯的影像。 视频中每一张静态图片被称为视频的一帧frame。视频每秒输出的帧数量是一个很 重要的指标这被称为帧率单位为帧 / 秒。现在主流的视频帧率是 30 帧 / 秒或 60 帧 / 秒。 帧率越高视频越流畅。 一个视频中每一帧图像的像素排列是完全一致的。视频中每帧图片的横轴、纵轴像素的 数量被称为视频的分辨率。以树莓派官方摄像头为例该摄像头拍摄的图像横轴拥有 640 个像素而纵轴拥有 480 个像素所以其分辨率为 640 像素 ×480 像素。 橙色点所示我们可以将每个像素定位到其在 x 轴横轴和 y 轴纵轴 方向的位置并标注为 ( x 坐标 y 坐标 )。 视频的分辨率常以纵轴的像素数量来表示例如标清视频为 480p指的是纵轴有 480 个像素。而高清视频为 720p全高清视频为 1080p4K 视频则为 2160p。标准视频的横 纵像素比通常为 16 :9或4 :3。显然分辨率越高视频越清晰。 7.2opencv安装 欲哭无泪555555555555555555走了一天弯路晕 结果在终端窗口输入sudo apt-get install -y libopencv-dev python3-opencv sudo pip3 install numpy 输入python3验证 再import cv2没有报错就ok了 7.21用树莓派摄像头调取图像 使用 OpenCV 测试摄像头的完整程序如下。 运行程序后将在弹出的窗口中看到其拍摄到的实时画面。如果未能看到画面请检查摄 像头的连接。 现在我们来分析一下这段程序代码的运作过程。OpenCV 可以使用 VideoCapture 读 取视频。其后的括号中填写序号“0”将可以读取树莓派的默认摄像头信号。如果连接了其 他摄像头可以用其他序号来获取。此外在这里填写视频存储地址也可以直接读取树莓 派系统中存储的视频。 将读取视频的结果创建为 cap 后使用 isOpened 函数可以返回其读取视频的结果。 如果读取成功则返回 True真否则返回 False假。因此我们可以将它作为 while 循环的条件实现循环读取视频信号。 对 cap 使用 read 函数将返回视频中一帧的信息这个函数存在两个返回值该帧是否 存在以及这一帧的具体信息。我们可以用形如 (ret, frame) cap.read() 的格式将第一个返 回值存为 ret第二个返回值存为 frame。 ret 在帧存在时为 True真否则为 False假。frame 则包含了这一帧中所有像 素点的三原色值信息及其排列方式。OpenCV 读取的帧信息的每一个像素由三原色值按照 B蓝、G绿、R红的顺序排列每一个值的范围为 0最暗~255最亮。 使用 imshow 函数可以将图像信息显示为一个窗口中的图像其格式为 OpenCV 中使用 imshow 显示图像后必须使用一个 waitKey 函数。函数的参数值为以 毫秒为单位的时间表示在显示一帧后等待这些时间再继续。 8.用 OpenCV 识别颜色 使用 OpenCV 调取图像的信息只是我们分析图像的第一步OpenCV 的强大之处在 于它可以通过一些预置函来方便地处理这些信息。机器视觉技术识别物体首先需要确定物体 的位置勾勒出其轮廓而区分物体与背景的关键在于颜色的分界。 8.1HSV 颜色空间 OpenCV 读取的图像信息在每一像素上都由 B、G、R 的颜色值排列而成但事实上 用这 3 个颜色值来区分颜色并不像想象中那么简单同一物体的三原色值在环境光照变化 的情况下将发生很大的变化使用一定的颜色区间来锁定特定物体几乎是不可能完成的任务。 为了解决这一问题我们可以使用另一种描述颜色的方式HSV 颜色空间。 相比直接用三原色值来表述颜色使用颜色的另外一些属性来描述它们更符合人眼对颜 色的认知。这些属性包括颜色的色相Hue、饱和度Saturation、亮度Value。 使用这 3 种颜色属性描绘颜色的方法于 1978 年由计算机科学家 Alvy Ray Smith 提出这 些值可以用三原色值经过简单的数学转换得到。 色相H是颜色的基本属性。我们可以将三原色红、绿、蓝置于一个圆盘的 0°、 120°和 240°位置然后将其他颜色插入排列。 饱和度S代表颜色的纯度或“鲜艳程度”。颜色的饱和度越高则色彩越“纯正”。 亮度V代表颜色的明亮程度。亮度越大则颜色越亮否则越暗。 图 5.13 所示为 HSV 颜色空间的图示这种描绘颜色的方式相对三原色更接近人的视 觉感受H、S、V 三种颜色值的变化可以被人眼敏锐地感觉到。通常色相H的取值 范围为 0~360而饱和度S与亮度V被划为 100 份取值范围为 0~100。 在 Geany 中我们可以单击运行键右侧的按键打开颜色选择器从这里可以获取不同 颜色的 HSV 值与 RGB 值 OpenCV 中有一个内置函数 cvtColor 可以方便地将图像信息从一个颜色空间转换到另 一个颜色空间例如 hsv cv2.cvtColor(frame, cv2.COLOR_BGR2HSV) 这一语句可以将原本 BGR 颜色空间上的 frame 信息转换为 HSV 颜色空间并存储到 hsv 中。需要注意的是OpenCV 中 H 值的取值范围是 0~180S 和 V 值则是 0~255。 若将通常的 HSV 值代入 OpenCV 中分析须先对 H、S、V 分别按比例转换。 我们常见的颜色都处于 HSV 颜色空间的某个范围内。图 5.15 所示为一些颜色的大致 范围按照 OpenCV 的取值范围。 9.图像的二值化 在 HSV 颜色空间中我们可以设定出待检测物体颜色所在的区间。假定待检测物 体是一个较均匀的黄色物体其颜色值的范围为H 值 26~34S 值 43~255V 值 46~255。我们可以将这个范围设定一个下限和上限并分别定义 这种定义方式事实上是建立了元组类型的变量 接下来为了勾勒出这个物体的轮廓需要先将图像中属于这个区间的像素与不属于这 个区间的像素进行分割。为了方便我们可以将属于这个区间的像素直接取值为 1而将 不属于这个区间的像素取值为 0这样就构成了一个只由 0 和 1 排列的图像信息。使用 OpenCV 中的 inRange 函数可以轻松地完成这一步骤 函数返回一个 0 和 1 排列而成的图像信息。这种将图像的所有像素用 0 和 1 表示的方 法被称为图像的二值化。二值化是处理计算机图像时常用的一种数学方法。若将值为 0 的 像素用黑色标出而将 1 用白色标出inRange 函数可以完成图 5.16 所示的转换。 9.1找到轮廓的位置 接下来我们可以通过二值化图像方便地找出黑、白区域分界线的位置即待检测物体的 轮廓。寻找二值化图像轮廓可以用 findContours 函数来实现 这里我们传入的第一个参数“图像信息”是二值化的图像信息。 第二个参数“输出模式”指定输出轮廓的类型主要有以下 3 种类型。 cv2.RETR_EXTERNAL只输出外轮廓。 cv2.RETR_LIST输出所有轮廓。 cv2.RETR_TREE输出所有轮廓并输出轮廓间的包含关系。 第三个参数“输出方法”指的则是输出的轮廓信息所包含的内容主要有以下两种输出 方法。 cv2.CHAIN_APPROX_SIMPLE只输出拐角点的坐标。 cv2.CHAIN_APPROX_NONE输出所有连续点的坐标   在 本 例 中 为 简 便 起 见 我 们 采 用 cv2.RETR_EXTERNAL 与 cv2.CHAIN_ APPROX_SIMPLE 两个参数。函数一共存在 3 个连续的返回值传入的图像信息本身、 轮廓坐标的信息、各个轮廓之间的包含关系。在指定只输出外轮廓的情况下我们实际上只需要用到其第二个返回值。 将图像进行二值化并寻找外轮廓的完整代码如下 我们首先将图像按照设定的颜色区间转换为二值化图像信息并用 mask 变量存储 。然后我们寻找图像中的轮廓并用 cnts 变量存储找到的全部轮廓信息。但是这样找到的轮廓包含了图像中所有处于该颜色区间中的物体轮廓 例如图 5.16 右侧 的一些噪点也会被检测出来。为了只输出待检测物体的轮廓我们需要找到所有轮廓中面积 最大的一个 Python 中存在一个 max 函数它可以输出一组数据中最大的一个。在本例中我们 需要输出的数据并非绝对数值最大而是 包围面积最大 。这种情况下在 max 函数中设定 比较方式即可实现 找最大面积的比较方式在 OpenCV 中被设定为 contourArea我们可以用下面的语句 将 cnts 中面积最大的轮廓存储在变量 c 中 最后我们需要从 c 中得到这个轮廓的 具体位置 。使用 minEnclosingCircle 函数可以 得到一个轮廓的最小包围圆指能包围这个轮廓的最小的圆的圆心坐标和半径。 minEnclosingCircle 函数只有一个参数轮廓信息。而函数将连续返回两组值圆心 的坐标横坐标纵坐标、圆的半径。 使用 ((x, y), radius) cv2.minEnclosingCircle(c) 将可以直接存储这些信息。我们用 变量 x 存储横坐标变量 y 存储纵坐标变量 radius 则存储圆的半径。 不过如果摄像头没有捕捉到任何指定颜色的物体cnts 将是完全“空”的这将导 致 max 函数报错。我们可以加入下列判断。 这里 len 可以表示一组数据的“长度”。若 len 大于 0表示其不为“空”。 len 函数的对象事实上是列表类型
http://www.yingshimen.cn/news/12297/

相关文章:

  • 如何做自助搜券网站品牌网络推广运营公司
  • 老网站做成适合手机端的网站怎么做深圳市力同科技有限公司
  • 主流的网站开发技术网站后台免费模板
  • 渭南建站网站开发gif图太多耗资源吗
  • 榆林免费做网站公司wordpress 未能连接到ftp服务器
  • 视频网站开发工程师装修类网站模板下载
  • 域名出售后被用来做非法网站html网页制作代码
  • 中英网站搭建报价表如何创建一个网站卖东西
  • 网站开发 集成包网络工程师分类
  • 惠阳网站推广费用网站在建设中模板下载
  • 静态网站开发实训报告档案网站建设书
  • 淘宝客采集网站建设网站设计文档
  • 网网站开发wordpress编辑页面的颜色
  • 怎么做自己地网站现在个人网站怎么备案
  • 建设银行官方网站下载员工之家app官网下载地址
  • 做网站的好框架网站开发运营经理
  • 西宁专业制作网站广告营销图片
  • 云南网络网站推广wordpress 头像打岔
  • 郑州网站建设方案服务所有手机浏览器大全
  • 宁夏做网站建设公司网络结构有哪几种
  • 福州市建设管理处网站微商城开发设计
  • 农业科技公司网站案例写作网站私密
  • 游戏网站免费入口织梦网站首页自动更新
  • 安徽省建设工程造价信息网站网站诊断分析
  • 网站关键词添加多少个广州led网站建设
  • 网站友链怎么添加做衣服网站
  • 做网站赚什么钱网站如何布局设计
  • 建手机网站怎么收费做网站跟客人怎么沟通
  • 网站建设合同中的违约责任百度网站建立
  • 建设手机网站的方案涂鸦智能深圳分公司