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

网站安全检测可以监测哪些内容风险信息wordpress 页面标签

网站安全检测可以监测哪些内容风险信息,wordpress 页面标签,兰州网站维护,广东惠州最新消息今天1 几何图形检测介绍 1.1 轮廓(contours) 什么是轮廓#xff0c;简单说轮廓就是一些列点相连组成形状、它们拥有同样的颜色、轮廓发现在图像的对象分析、对象检测等方面是非常有用的工具#xff0c;在OpenCV 中使用轮廓发现相关函数时候要求输入图像是二值图像#xff0c;这…1 几何图形检测介绍 1.1 轮廓(contours) 什么是轮廓简单说轮廓就是一些列点相连组成形状、它们拥有同样的颜色、轮廓发现在图像的对象分析、对象检测等方面是非常有用的工具在OpenCV 中使用轮廓发现相关函数时候要求输入图像是二值图像这样便于轮廓提取、边缘提取等操作。轮廓发现的函数与参数解释如下 函数原型 findContours(image, mode, method, contoursNone, hierarchyNone, offsetNone) 参数 image输入/输出的二值图像mode 迒回轮廓的结构、可以是List、Tree、Externalmethod 轮廓点的编码方式基本是基于链式编码contours 迒回的轮廓集合hieracrchy 迒回的轮廓层次关系offset 点是否有位移 1.2 多边形逼近 多边形逼近是通过对轮廓外形无限逼近删除非关键点、得到轮廓的关键点不断逼近轮廓真实形状的方法OpenCV中多边形逼近的函数与参数解释如下 函数原型 approxPolyDP(curve, epsilon, closed, approxCurveNone) 参数 curve 表示输入的轮廓点集合epsilon 表示逼近曲率越小表示相似逼近越厉害close 是否闭合 1.3 几何距计算 图像几何距是图像的几何特征高阶几何距中心化之后具有特征不变性可以产生Hu距输出用于形状匹配等操作这里我们通过计算一阶几何距得到指定轮廓的中心位置计算几何距的函数与参数解释如下 函数原型 moments(array, binaryImageNone) 参数 array表示指定输入轮廓binaryImage默认为None 2 基于opencv实现几何图形检测 整个代码实现分为如下几步完成 加载图像图像二值化轮廓发现几何形状识别测量周长、面积、计算中心颜色提取 2.1 加载图像并进行二值化处理 的二值化就是将图像上的像素点的灰度值设置为0或255也就是将整个图像呈现出明显的只有黑和白的视觉效果。 一幅图像包括目标物体、背景还有噪声要想从多值的数字图像中直接提取出目标物体常用的方法就是设定一个阈值T用T将图像的数据分成两部分大于T的像素群和小于T的像素群。这是研究灰度变换的最特殊的方法称为图像的二值化Binarization。 函数原型 def threshold(src: Any,thresh: Any,maxval: Any,type: Any,dst: Any None) - None src源图像可以为8位的灰度图也可以为32位的彩色图像。两者由区别 dst输出图像 thresh阈值 maxvaldst图像中最大值 type阈值类型可以具体类型如下            enum ThresholdTypes {THRESH_BINARY     0,            //黑白                                                  THRESH_BINARY_INV 1,        //黑白反转                                                  THRESH_TRUNC       2,        //得到图像多像素值                                                  THRESH_TOZERO     3,        //当前点值大于阈值时不改                                                                                                     变否则设置为0                                                  THRESH_TOZERO_INV 4,        //当前点值大于阈值时                                                                                                     设置为0否则不改变                                                   THRESH_MASK       7,                                                   THRESH_OTSU       8,        //自适应阈值                                                   THRESH_TRIANGLE   16              }; 具体实现代码 frame cv.imread(./data/jihe2.png)# 二值化图像 gray cv.cvtColor(frame, cv.COLOR_BGR2GRAY) ret, binary cv.threshold(gray, 0, 255, cv.THRESH_BINARY_INV | cv.THRESH_OTSU) cv.imshow(input image, frame) 2.2 轮廓检测与逼近 当需要对图像进行形状分析时需要使用多边形逼近一个轮廓使得顶点数目变少算法原理比较简单核心就是不断找多边形最远的点加入形成新的多边形直到最短距离小于指定的精度。OpenCV里面用函数approxPolyDP()实现。approxPolyDP()用另一条顶点较少的曲线来逼近一条曲线或者一个多边形这样两条曲线之间的距离小于或等于指定的精度。同时也有使闭合逼近曲线的选项那就是说起始点和终止点相同。 findContours后的轮廓信息contours可能过于复杂不平滑可以用approxPolyDP函数对该多边形曲线做适当近似approxPolyDP 主要功能是把一个连续光滑曲线折线化对图像轮廓点进行多边形拟合。 具体实现代码 contours, hierarchy cv.findContours(binary, cv.RETR_EXTERNAL, cv.CHAIN_APPROX_SIMPLE) for cnt in range(len(contours)):# 提取与绘制轮廓cv.drawContours(result, contours, cnt, (0, 255, 0), 2)# 轮廓逼近epsilon 0.01 * cv.arcLength(contours[cnt], True)approx cv.approxPolyDP(contours[cnt], epsilon, True) 2.3 几何形状判断 根据corners数量对形状进行判断。 approx cv.approxPolyDP(contours[cnt], epsilon, True)# 分析几何形状 corners len(approx) shape_type if corners 3:continueif corners 3:count self.shapes[triangle]count count 1self.shapes[triangle] countshape_type 三角形 if corners 4:count self.shapes[rectangle]count count 1self.shapes[rectangle] countshape_type 矩形 if corners 10:count self.shapes[circles]count count 1self.shapes[circles] countshape_type 圆形 if 4 corners 10:count self.shapes[polygons]count count 1self.shapes[polygons] countshape_type 多边形 2.4 面积周长计算 # 计算面积与周长 p cv.arcLength(contours[cnt], True) area cv.contourArea(contours[cnt]) print(周长: %.3f, 面积: %.3f 颜色: %s 形状: %s % (p, area, color_str, 2.5 完整代码 import cv2 as cv import numpy as npclass ShapeAnalysis:def __init__(self):self.shapes {triangle: 0, rectangle: 0, polygons: 0, circles: 0}def analysis(self, frame):h, w, ch frame.shaperesult np.zeros((h, w, ch), dtypenp.uint8)# 二值化图像print(start to detect lines...\n)gray cv.cvtColor(frame, cv.COLOR_BGR2GRAY)ret, binary cv.threshold(gray, 0, 255, cv.THRESH_BINARY_INV | cv.THRESH_OTSU)cv.imshow(input image, frame)contours, hierarchy cv.findContours(binary, cv.RETR_EXTERNAL, cv.CHAIN_APPROX_SIMPLE)for cnt in range(len(contours)):# 提取与绘制轮廓cv.drawContours(result, contours, cnt, (0, 255, 0), 2)# 轮廓逼近epsilon 0.01 * cv.arcLength(contours[cnt], True)approx cv.approxPolyDP(contours[cnt], epsilon, True)# 分析几何形状corners len(approx)shape_type if corners 3:continueif corners 3:count self.shapes[triangle]count count 1self.shapes[triangle] countshape_type 三角形if corners 4:count self.shapes[rectangle]count count 1self.shapes[rectangle] countshape_type 矩形if corners 10:count self.shapes[circles]count count 1self.shapes[circles] countshape_type 圆形if 4 corners 10:count self.shapes[polygons]count count 1self.shapes[polygons] countshape_type 多边形# 求解中心位置mm cv.moments(contours[cnt])if mm[m00] 0:continuecx int(mm[m10] / mm[m00])cy int(mm[m01] / mm[m00])cv.circle(result, (cx, cy), 3, (0, 0, 255), -1)# 颜色分析color frame[cy][cx]color_str ( str(color[0]) , str(color[1]) , str(color[2]) )# 计算面积与周长p cv.arcLength(contours[cnt], True)area cv.contourArea(contours[cnt])print(周长: %.3f, 面积: %.3f 颜色: %s 形状: %s % (p, area, color_str, shape_type))cv.imshow(Analysis Result, result)print(triangle: , self.shapes[triangle])print(rectangle: , self.shapes[rectangle])print(polygons: , self.shapes[polygons])print(circles: , self.shapes[circles])return self.shapesif __name__ __main__:src cv.imread(./data/jihe2.png)ld ShapeAnalysis()ld.analysis(src)cv.waitKey(0)cv.destroyAllWindows() 原始图像 运行结果显示 周长: 553.973, 面积: 11687.500 颜色: (190, 146, 112) 形状: 矩形 周长: 479.556, 面积: 14743.500 颜色: (232, 162, 0) 形状: 矩形 周长: 543.144, 面积: 18333.500 颜色: (21, 0, 136) 形状: 多边形 周长: 341.421, 面积: 7593.000 颜色: (164, 73, 163) 形状: 多边形 周长: 761.796, 面积: 13221.500 颜色: (87, 122, 185) 形状: 圆形 周长: 594.257, 面积: 24703.500 颜色: (39, 127, 255) 形状: 圆形 周长: 592.000, 面积: 14508.000 颜色: (36, 28, 237) 形状: 矩形 周长: 432.291, 面积: 11939.500 颜色: (204, 72, 63) 形状: 多边形 周长: 280.451, 面积: 4917.000 颜色: (190, 146, 112) 形状: 多边形 周长: 531.588, 面积: 10587.000 颜色: (164, 73, 163) 形状: 矩形 周长: 405.262, 面积: 4172.500 颜色: (76, 177, 34) 形状: 圆形 周长: 370.191, 面积: 9746.000 颜色: (232, 162, 0) 形状: 圆形 周长: 486.000, 面积: 14762.000 颜色: (232, 162, 0) 形状: 矩形 triangle: 0 rectangle: 5 polygons: 4 circles: 4
http://www.hkea.cn/news/14489767/

相关文章:

  • app软件开发就是网站开发吗住建城乡建设部网站证件查询
  • 广州企业网站制作公司网站建设服务器对比
  • asp.net 网站的头部和底部怎么来做 includesem优化案例
  • wordpress网站没有阅读量音乐APP网站开发
  • 网站内容建设的布局和结构网站型营销
  • 网站建设校长信箱设计方案建设一个旅游网站
  • 国外免费建站网站wordpress用图床好还是
  • 图片站wordpress模板下载视频网站开发书籍
  • 威海网站开发怎么设计一个网站
  • 专业外贸公司网站合肥做公司网站
  • 网站建设和管理专业有哪些做海报的网站
  • 企业建立企业网站有哪些优势?iis搭建多个网站
  • 网站建设与网站管理app网站模板
  • 盐边网站建设网站建设教程公司
  • 内蒙建设厅网站怎么查建筑电工证阿里云做网站需要些什么
  • 3030wa网站开发学校手机移动端
  • 管理手机网站网站建设实训主要收获及体会
  • 网站代运营网站安全建设需求分析报告
  • 网站开发前景好吗wordpress+图片库
  • 潍坊网站建设排行苏州知名高端网站建设企业
  • 科技公司网站建设方案书模板成品网站建站空间
  • 凡科做网站行吗发稿计划
  • 西安微信平台网站建设wordpress id 作为别名
  • 与设计行业相关的网站祁东seo公司
  • 长春火车站和高铁站是一个站吗网站开发工程师简历
  • 怎么看网站是不是做竞价seo的含义是什么意思
  • 网站建设与管理课后总结越秀建设网站
  • 蓝色大气网站欣赏百度做网站为什么上阿里云备案
  • 深圳企业做网站公司有哪些做自己的网站需要什么
  • 做外贸要看哪些网站美食软文300字