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

文明网站建设方案苏州网站建设培训学校

文明网站建设方案,苏州网站建设培训学校,python编程软件pc,阿里云网站建设视频算子解释 广义的讲#xff0c;对任何函数进行某一项操作都可以认为是一个算子#xff0c;甚至包括求幂次#xff0c;开方都可以认为是一个算子#xff0c;只是有的算子我们用了一个符号来代替他所要进行的运算罢了#xff0c;所以大家看到算子就不要纠结#xff0c;他和f…算子解释 广义的讲对任何函数进行某一项操作都可以认为是一个算子甚至包括求幂次开方都可以认为是一个算子只是有的算子我们用了一个符号来代替他所要进行的运算罢了所以大家看到算子就不要纠结他和f(x)的f没区别它甚至和加减乘除的基本运算符号都没有区别只是他可以对单对象操作罢了有的符号比如大于、小于号要对多对象操作。又比如取概率P{Xx}概率是集合{Xx}他是属于实数集的子集对[0,1]区间的一个映射我们知道实数域和[0,1]区间是可以一一映射的这个后面再说所以取概率符号P我们认为也是一个算子和微分积分算子算子没区别。总而言之算子就是映射就是关系就是变换。 算子_百度百科 一.Sobel 算子 Sobel 算子是一种用于边缘检测的离散微分算子它结合了高斯平滑和微分求导。该算子用于计算图像明暗程度近似值根据图像边缘旁边明暗程度把该区域内超过某个数的特定点记为边缘。Sobel 算子在 Prewitt 算子的基础上增加了权重的概念认为相邻点的距离远近对当前像素点的影响是不同的距离越近的像素点对应当前像素的影响越大从而实现图像锐化并突出边缘轮廓 [1-4]。 Sobel 算子的边缘定位更准确常用于噪声较多、灰度渐变的图像。其算法模板如公式1所示其中 dx 表示水平方向dy 表示垂直方向 [3]。 其像素计算公式如下 Sobel 算子像素的最终计算公式如下 Sobel 算子根据像素点上下、左右邻点灰度加权差在边缘处达到极值这一现象检测边缘。对噪声具有平滑作用提供较为精确的边缘方向信息。因为 Sobel 算子结合了高斯平滑和微分求导分化因此结果会具有更多的抗噪性当对精度要求不是很高时Sobel 算子是一种较为常用的边缘检测方法。 Python 和 OpenCV 将 Sobel 算子封装在 Sobel () 函数中其函数原型如下所示 dst Sobel(src, ddepth, dx, dy[, dst[, ksize[, scale[, delta[, borderType]]]]])– src 表示输入图像– dst 表示输出的边缘图其大小和通道数与输入图像相同– ddepth 表示目标图像所需的深度针对不同的输入图像输出目标图像有不同的深度– dx 表示 x 方向上的差分阶数取值 1 或 0– dy 表示 y 方向上的差分阶数取值 1 或 0– ksize 表示 Sobel 算子的大小其值必须是正数和奇数– scale 表示缩放导数的比例常数默认情况下没有伸缩系数– delta 表示将结果存入目标图像之前添加到结果中的可选增量值– borderType 表示边框模式更多详细信息查阅 BorderTypes 注意在进行 Sobel 算子处理之后还需要调用 convertScaleAbs () 函数计算绝对值并将图像转换为 8 位图进行显示。其算法原型如下 dst convertScaleAbs(src[, dst[, alpha[, beta]]])– src 表示原数组– dst 表示输出数组深度为 8 位– alpha 表示比例因子– beta 表示原数组元素按比例缩放后添加的值 Sobel 算子的实现代码如下所示。 # -*- coding: utf-8 -*-# By:Eastmountimport cv2import numpy as npimport matplotlib.pyplot as plt#读取图像img cv2.imread(luo.png)lenna_img cv2.cvtColor(img,cv2.COLOR_BGR2RGB)#灰度化处理图像grayImage cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)#Sobel算子x cv2.Sobel(grayImage, cv2.CV_16S, 1, 0) #对x求一阶导y cv2.Sobel(grayImage, cv2.CV_16S, 0, 1) #对y求一阶导absX cv2.convertScaleAbs(x)absY cv2.convertScaleAbs(y)Sobel cv2.addWeighted(absX, 0.5, absY, 0.5, 0)#用来正常显示中文标签plt.rcParams[font.sans-serif][SimHei]#显示图形titles [原始图像, Sobel算子]images [lenna_img, Sobel]for i in range(2):plt.subplot(1,2,i1), plt.imshow(images[i], gray)plt.title(titles[i])plt.xticks([]),plt.yticks([])plt.show() 其运行结果如图所示  二.Laplacian 算子 laplacian  /lɑ:plɑ:siən/     n.[数] 拉普拉斯算子调和算子adj.[数] 拉普拉斯算子的调和算子的 如果将一系列计算规则或公式规定为某个特定名称梯度、拉普拉斯算子等等那它的背后肯定有个符合直觉的描述而不是硬生生地去记住计算规则。 试想一下当面对一个复杂的数学公式其中包含拉普拉斯算子你还要回想一下算子是怎么个计算规则这对于公式整体的理解是很有阻碍的。 其实它的含义一句话就能说明白拉普拉斯算子描述函数当前值f(x)与其附近周边点的平均值之间的差值deviation from the nearby average。有了这样直觉性理解就能更透彻明白其在工程中的应用了 上面是正常图像经过拉普拉斯算子卷积滤波也就是对每个像素进行与周围像素平均值差值处理得到的轮廓图。为什么这样的图像处理可以得到物体轮廓呢因为物体轮廓的像素和附近像素背景或其他物体平均值的偏差一般都很大把差值设定一个阈值进行黑白阶跃处理就能得到物体的轮廓。 拉普拉斯算子是二阶微分线性算子在图像边缘处理中二阶微分的边缘定位能力更强锐化效果更好因此在进行图像边缘处理时直接采用二阶微分算子而不使用一阶微分。 离散函数的导数退化成了差分一维一阶差分公式和二阶差分公式分别为 分别对Laplace算子x,y两个方向的二阶导数进行差分就得到了离散函数的Laplace算子。在一个二维函数f(x,y)中x,y两个方向的二阶差分分别为 所以Laplace算子的差分形式为 写成filter mask的形式如下 该mask的特点mask在上下左右四个90度的方向上结果相同也就是说在90度方向上无方向性。为了让该mask在45度的方向上也具有该性质对该filter mask进行扩展定义为 将Laplace算子写成filter mask后其操作大同小异于其他的空间滤波操作。将filter mask在原图上逐行移动然后mask中数值与其重合的像素相乘后求和赋给与mask中心重合的像素对图像的第一和最后的行和列无法做上述操作的像素赋值零就得到了拉普拉斯操作结果。因为Laplace算子是二阶导数操作其在强调图像素中灰度不连续的部分的同时也不在强调灰度值连续的部分。这样会产生一个具有很明显的灰度边界但是没有足够特征的黑色背景。背景特征可以通过原图像与Laplace算子操作后的图像混合恢复公式如下 进一步推导如下 写成filter mask的形式如下: 扩展定义为 高斯-拉普拉斯算子 由于拉普拉斯算子对图片中的噪声很敏感。因此为了解决这一问题我们一般会在进行拉普拉斯操作之前先对图像进行高斯平滑滤波处理得到高斯-拉普拉斯算子LoG。 高斯-拉普拉斯算子是效果更好的边缘检测器它把高斯平滑器和拉普拉斯锐化结合起来。先平滑掉噪声再进行边缘检测。 模版例子如下 拉普拉斯Laplacian算子是 n 维欧几里德空间中的一个二阶微分算子常用于图像增强领域和边缘提取。它通过灰度差分计算邻域内的像素基本流程是 判断图像中心像素灰度值与它周围其他像素的灰度值 如果中心像素的灰度更高则提升中心像素的灰度 反之降低中心像素的灰度从而实现图像锐化操作。 在算法实现过程中Laplacian 算子通过对邻域中心像素的四方向或八方向求梯度再将梯度相加起来判断中心像素灰度与邻域内其他像素灰度的关系最后通过梯度运算的结果对像素灰度进行调整 [2]。 一个连续的二元函数 f (x,y)其拉普拉斯运算定义为 Laplacian 算子分为四邻域和八邻域四邻域是对邻域中心像素的四方向求梯度八邻域是对八方向求梯度。其中四邻域模板如公式5所示 其像素的计算公式可以简化为 通过模板可以发现当邻域内像素灰度相同时模板的卷积运算结果为 0当中心像素灰度高于邻域内其他像素的平均灰度时模板的卷积运算结果为正数当中心像素的灰度低于邻域内其他像素的平均灰度时模板的卷积为负数。对卷积运算的结果用适当的衰弱因子处理并加在原中心像素上就可以实现图像的锐化处理。 Laplacian 算子的八邻域模板如下 其像素的计算公式可以简化为 Python 和 OpenCV 将 Laplacian 算子封装在 Laplacian () 函数中其函数原型如下所示 dst Laplacian(src, ddepth[, dst[, ksize[, scale[, delta[, borderType]]]]])– src 表示输入图像– dst 表示输出的边缘图其大小和通道数与输入图像相同– ddepth 表示目标图像所需的深度– ksize 表示用于计算二阶导数的滤波器的孔径大小其值必须是正数和奇数且默认值为 1更多详细信息查阅 getDerivKernels– scale 表示计算拉普拉斯算子值的可选比例因子。默认值为 1更多详细信息查阅 getDerivKernels– delta 表示将结果存入目标图像之前添加到结果中的可选增量值默认值为 0– borderType 表示边框模式更多详细信息查阅 BorderTypes 注意Laplacian 算子其实主要是利用 Sobel 算子的运算通过加上 Sobel 算子运算出的图像 x 方向和 y 方向上的导数得到输入图像的图像锐化结果。 同时在进行 Laplacian 算子处理之后还需要调用 convertScaleAbs () 函数计算绝对值并将图像转换为 8 位图进行显示。其算法原型如下 dst convertScaleAbs(src[, dst[, alpha[, beta]]])– src 表示原数组– dst 表示输出数组深度为 8 位– alpha 表示比例因子– beta 表示原数组元素按比例缩放后添加的值 当 ksize1 时Laplacian () 函数采用 3×3 的孔径四邻域模板进行变换处理。下面的代码是采用 ksize3 的 Laplacian 算子进行图像锐化处理其代码如下 # -*- coding: utf-8 -*-# By:Eastmountimport cv2import numpy as npimport matplotlib.pyplot as plt#读取图像img cv2.imread(luo.png)lenna_img cv2.cvtColor(img,cv2.COLOR_BGR2RGB)#灰度化处理图像grayImage cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)#拉普拉斯算法dst cv2.Laplacian(grayImage, cv2.CV_16S, ksize 3)Laplacian cv2.convertScaleAbs(dst)#用来正常显示中文标签plt.rcParams[font.sans-serif][SimHei]#显示图形titles [原始图像, Laplacian算子]images [lenna_img, Laplacian]for i in range(2):plt.subplot(1,2,i1), plt.imshow(images[i], gray)plt.title(titles[i])plt.xticks([]),plt.yticks([])plt.show() 其运行结果如图 2 所示 边缘检测算法主要是基于图像强度的一阶和二阶导数但导数通常对噪声很敏感因此需要采用滤波器来过滤噪声并调用图像增强或阈值化算法进行处理最后再进行边缘检测。下面是采用高斯滤波去噪和阈值化处理之后再进行边缘检测的过程并对比了四种常见的边缘提取算法。 # -*- coding: utf-8 -*-# By:Eastmountimport cv2import numpy as npimport matplotlib.pyplot as plt#读取图像img cv2.imread(luo.png)lenna_img cv2.cvtColor(img, cv2.COLOR_BGR2RGB)#灰度化处理图像grayImage cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)#高斯滤波gaussianBlur cv2.GaussianBlur(grayImage, (3,3), 0)#阈值处理ret, binary cv2.threshold(gaussianBlur, 127, 255, cv2.THRESH_BINARY)#Roberts算子kernelx np.array([[-1,0],[0,1]], dtypeint)kernely np.array([[0,-1],[1,0]], dtypeint)x cv2.filter2D(binary, cv2.CV_16S, kernelx)y cv2.filter2D(binary, cv2.CV_16S, kernely)absX cv2.convertScaleAbs(x)absY cv2.convertScaleAbs(y)Roberts cv2.addWeighted(absX, 0.5, absY, 0.5, 0)#Prewitt算子kernelx np.array([[1,1,1],[0,0,0],[-1,-1,-1]], dtypeint)kernely np.array([[-1,0,1],[-1,0,1],[-1,0,1]], dtypeint)x cv2.filter2D(binary, cv2.CV_16S, kernelx)y cv2.filter2D(binary, cv2.CV_16S, kernely)absX cv2.convertScaleAbs(x)absY cv2.convertScaleAbs(y)Prewitt cv2.addWeighted(absX,0.5,absY,0.5,0)#Sobel算子x cv2.Sobel(binary, cv2.CV_16S, 1, 0)y cv2.Sobel(binary, cv2.CV_16S, 0, 1)absX cv2.convertScaleAbs(x)absY cv2.convertScaleAbs(y)Sobel cv2.addWeighted(absX, 0.5, absY, 0.5, 0)#拉普拉斯算法dst cv2.Laplacian(binary, cv2.CV_16S, ksize 3)Laplacian cv2.convertScaleAbs(dst)#效果图titles [Source Image, Binary Image, Roberts Image,Prewitt Image,Sobel Image, Laplacian Image]images [lenna_img, binary, Roberts, Prewitt, Sobel, Laplacian]for i in np.arange(6):plt.subplot(2,3,i1),plt.imshow(images[i],gray)plt.title(titles[i])plt.xticks([]),plt.yticks([])plt.show() 输出结果如图 3 所示。其中Laplacian 算子对噪声比较敏感由于其算法可能会出现双像素边界常用来判断边缘像素位于图像的明区或暗区很少用于边缘检测Robert 算子对陡峭的低噪声图像效果较好尤其是边缘正负 45 度较多的图像但定位准确率较差Prewitt 算子对灰度渐变的图像边缘提取效果较好而没有考虑相邻点的距离远近对当前像素点的影响Sobel 算子考虑了综合因素对噪声较多的图像处理效果更好。 三、总结 本文主要介绍图像锐化和边缘检测知识详细讲解了 Sobel 算子和 Laplacian 算子并通过小珞珞图像进行边缘轮廓提取。图像锐化和边缘提取技术可以消除图像中的噪声提取图像信息中用来表征图像的一些变量为图像识别提供基础。
http://www.zqtcl.cn/news/73097/

相关文章:

  • 苏州企业网站建设设计制作公司wordpress说明类主题
  • asp.net 创建网站百度营稍
  • iis7 网站权限国产免费crm系统有哪些在线
  • 做学校网站的内容站长统计app官方网站
  • 周村网站制作哪家好公司网站制作定制
  • 做玄幻封面素材网站中国阳江网络问政平台
  • 免费行情软件在线网站在线玩小游戏网页版
  • 哪种浏览器可以打开所有网站网站上添加子栏目
  • 网站建设有限公司宁波网站建设的价格表
  • 网站推广的好处做网站管理怎么赚钱
  • 网站主机托管恋家网邯郸房产
  • 做目录的网站同时做几个网站的seo
  • 做网站哪个软件好用济南搜到网络推广公司
  • 淳安网站建设制作WordPress版块会员可见
  • wordpress如何生成网站地图房屋建模软件
  • 功能多的网站模板 中文内容网站服务器 虚拟主机
  • 企业网站优化定制北京服务网
  • 北京网站备案拍照地点网站域名com和cn
  • 北京个人网站制作上海响应式网站制作公司
  • 个人网站电商怎么做福建seo推广方案
  • 90设计网站怎么样安徽建工网
  • 网站开发制作兰州新区小程序建站
  • 学校网站建设说明书万户网
  • 建站网站和维护需要会什么网站做调查问卷给钱的兼职
  • 做历史课件用哪个网站比较好wordpress 好的插件推荐
  • 广州网站建设公司怎么挑选帝国系统做网站地图
  • 吉林建设教育协会网站嵊州网站建设
  • 做公司网站比较好的网站如何301
  • 现在的网站内容区域做多宽陕西省建设监理协会网站证书
  • 建设网站的网站空间男女做那个的小视频网站