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

网站内容采编怎么做小型电商网站开发

网站内容采编怎么做,小型电商网站开发,wordpress 中文商城主题,wordpress 发文章漏洞OpenCV与图像处理学习八——图像边缘提取#xff08;Canny检测代码#xff09;一、图像梯度1.1 梯度1.2 图像梯度二、梯度图与梯度算子2.1模板卷积2.2 梯度图2.3 梯度算子2.3.1 Roberts交叉算子2.3.2 Prewitt算子2.3.3 Sobel算子三、Canny边缘检测算法#xff08;代码实现Canny检测代码一、图像梯度1.1 梯度1.2 图像梯度二、梯度图与梯度算子2.1模板卷积2.2 梯度图2.3 梯度算子2.3.1 Roberts交叉算子2.3.2 Prewitt算子2.3.3 Sobel算子三、Canny边缘检测算法代码实现这次笔记简单介绍图像梯度、梯度图以及梯度算子的概念并详细介绍三种基本的梯度算子然后简单的介绍Canny检测的原理与代码实现因为Canny检测中有很重要的一步用到了Sobel算子计算梯度所以先介绍前面的内容。 一、图像梯度 1.1 梯度 先来看梯度的概念 梯度是一个向量梯度方向指向函数变化最快的方向大小就是它的模也是最大的变化率对于二元函数zf(x,y)它在点(x,y)的梯度记为 或 梯度的计算公式为 梯度向量的幅值和方向角为 有了梯度是最大变化率这么一个认识下面我们拓展到图像梯度的概念上来。 1.2 图像梯度 图像梯度即图像中灰度变化的度量求图像梯度的过程是二维离散函数求导过程。 因为图像边缘上的像素值变化非常剧烈所以图像的边缘其实就是图像上灰度级变化很快的点的集合。 下图展示了一个灰度图的数学化表达像素点(x,y)的灰度值是f(x,y),它有八个邻域有时使用四邻域 图像在点(x,y)的梯度为 分别对应图像的水平方向和竖直方向可见图像梯度的求法只是像素值之间的差而无需求导因为数字图像是离散的。 二、梯度图与梯度算子 2.1模板卷积 要理解梯度图的生成就要先了解模板卷积的过程模板卷积是模板运算的一种方式其步骤如下 将模板在输入图像中漫游并将模板中心与图像中某个像素位置重合将模板上各个系数与模板下各对应像素的灰度相乘将所有乘积相加为保持灰度范围常将结果再除以模板系数之和后面梯度算子模板和为0的话就不需要除了将上述运算结果模板的响应输出赋给输出图像中对应模板中心位置的像素。 其实就是现在的卷积运算干的事。 2.2 梯度图 梯度图的生成和模板卷积相同不同的是要生成梯度图还需要在模板卷积完成后计算在点(x,y)梯度的幅值将幅值作为像素值这样才算完。 注意 梯度图上每个像素点的灰度值就是梯度向量的幅度生成梯度图需要两个模板求图像梯度需要两个方向右图为水平和竖直方向最简单的模板 所以水平方向和竖直方向上的梯度为 2.3 梯度算子 梯度算子是一阶导数算子是水平G(x)和竖直G(y)方向对应模板的组合也有对角线方向即是上述卷积模板的组合。 常见的一阶算子Roberts交叉算子 Prewitt算子 Sobel算子下面将分别介绍。 2.3.1 Roberts交叉算子 Roberts交叉算子其本质是一个对角线方向的梯度算子对应的水平方向和竖直方向的梯度分别为 优点边缘定位较准适用于边缘明显且噪声较少的图像。 缺点 没有描述水平和竖直方向的灰度变化只关注了对角线方向容易造成遗漏。鲁棒性差。由于点本身参加了梯度计算不能有效的抑制噪声的干扰。 2.3.2 Prewitt算子 Prewitt算子是典型的3*3模板其模板中心对应要求梯度的原图像坐标(x,y) (x,y)对应的8-邻域的像素灰度值如下表所示 通过Prewitt算子的水平模板M(x)卷积后对应的水平方向梯度为 通过Prewitt算子的竖直模板M(y)卷积后对应的竖直方向梯度为: 输出梯度图在(x,y)的灰度值为: 优点Prewitt算子引入了类似局部平均的运算对噪声具有平滑作用较Roberts算子更能抑制噪声。 2.3.3 Sobel算子 Sobel算子其实就是是增加了权重系数的Prewitt算子其模板中心对应要求梯度的原图像坐标对应的8-邻域的像素灰度值如下表所示 通过Sobel算子的水平模板M(x)卷积后对应的水平方向梯度为 通过Sobel算子的竖直模板M(y)卷积后对应的竖直方向梯度为: 输出梯度图在(x,y)的灰度值为: 优点Sobel算子引入了类似局部加权平均的运算对边缘的定位比要比Prewitt算子好。 因为Sobel算子的效果较好实际使用中相比于另外两种更多所以我们只看一下Sobel算子的例子。 函数 dst cv2.Sobel( src, ddepth, dx, dy[, dst[, ksize[, scale[, delta[, borderType]]]]] )参数 src输入图像。 ddepth输出图像位深度-1表示采用的是与原图像相同的深度。目标图像的深度必须大于等于原图像的深度 dxx导数的阶数0表示这个方向上没有求导一般为0、 1、 2 dyy导数的阶数0表示这个方向上没有求导一般为0、 1、 2 ksizeSobel算子的尺寸必须是135或7。还可以是一个特殊值ksize FILTER_SCHARR (-1)那么将会使用scharr算子在x方向的算子为 在y方向上是这个算子的转置。 scale可选计算的导数值的比例因子默认情况下不应用缩放。 delta可选在将结果存储到dst中之前添加到结果中的增量值。 看个例子 import numpy as np import cv2 from matplotlib import pyplot as plt img cv2.imread(./image/girl2.png, 0) sobelx cv2.Sobel(img, cv2.CV_64F, 1, 0, ksize5) sobely cv2.Sobel(img, cv2.CV_64F, 0, 1, ksize5)plt.subplot(1, 3, 1), plt.imshow(img, cmap gray) plt.title(Original), plt.xticks([]), plt.yticks([]) plt.subplot(1, 3, 2), plt.imshow(sobelx, cmap gray) plt.title(Sobel X), plt.xticks([]), plt.yticks([]) plt.subplot(1, 3, 3),plt.imshow(sobely, cmap gray) plt.title(Sobel Y), plt.xticks([]), plt.yticks([]) plt.show()得到的就是该图像在x方向上和y方向上的梯度图 从这个效果中我们也可以看出梯度图能够突出图像中的边缘或明暗变化剧烈的地方。 三、Canny边缘检测算法代码实现 Canny算法是先平滑后求导数的方法。 John Canny研究了最优边缘检测方法所需的特性给出了评价边缘检测性能优劣的三个指标 好的信噪比即将非边缘点判定为边缘点的概率要低将边缘点判为非边缘点的概率要低高的定位性能即检测出的边缘点要尽可能在实际边缘的中心对单一边缘仅有唯一响应即单个边缘产生多个响应的概率要低并且虚假响应边缘应该得到最大抑制。 步骤 彩色图像转换为灰度图像以灰度图单通道图读入对图像进行高斯模糊去噪计算图像梯度这里用到了Sobel算子来计算图像梯度根据梯度计算图像边缘幅值与角度沿梯度方向进行非极大值抑制边缘细化双阈值边缘连接处理二值化图像输出结果 在OpenCV中的函数为 edges cv2.Canny( image, threshold1, threshold2[, edges[, apertureSize[, L2gradient]]] )参数 image输入图像灰度图。threshold1双阈值边缘连接处理的第一个阈值。threshold2双阈值边缘连接处理的第二个阈值。apertureSizeSobel算子的尺寸。L2gradient是否使用L2正则化更精确地计算梯度还是使用L1。 看个例子 # 加载 opencv 和 numpy import cv2 import numpy as np # 以灰度图形式读入图像 img cv2.imread(./image/canny.png, 0) v1 cv2.Canny(img, 80, 150, (3, 3)) v2 cv2.Canny(img, 50, 100, (5, 5))# np.vstack():在竖直方向上堆叠 # np.hstack():在水平方向上平铺堆叠 ret np.hstack((v1, v2)) cv2.imshow(img, ret) cv2.waitKey(0) cv2.destroyAllWindows()原图如下所示 通过canny检测得到该图的边缘信息设置了两组参数得到的结果分别为 不同的参数设置可能得到不同的结果很明显第一种参数使得检测得到的边缘信息更少更干净而第二种得到的更多更全面实际使用中可以自己调节。 Canny检测作为传统的图像边缘提取算法虽然效果上不如现在大火的深度学习的各种网络但是对于一些边缘信息较为明显单一的图像来说任然有使用价值我们将输入图像换一下 再用Canny检测上述代码换一下输入图像即可得到的结果为 可以看到检测效果已经非常不错了更重要的是它不需要训练所以速度非常的快这是它很大的一个优点所以现在还是会使用到Canny检测。
http://wiki.neutronadmin.com/news/249264/

相关文章:

  • 大庆市城乡建设局网站wordpress多用户博客
  • 上海移动云网站建设电子网站建设实训
  • 1做网站wordpress主机pfthost
  • php网站权限设置开发一个网站需要多久
  • 网站建设分工明细表110平米三室一厅简装
  • 内黄县建设局网站专业app开发外包公司
  • 手机营销网站模板新能源汽车价格趋势
  • wordpress地址和站点地址有什么用超市型网站开发
  • 怎么样自己创建网站网站标题用什么隔开
  • 企业营销网站开发建设专家php如何给网站做支付接口
  • 网站设计与实现万网博通
  • 主题公园旅游景区网站建设建设互联网教育网站
  • dw做网站的流程网站开发的3个阶段
  • 网站seo优化推广教程湖南建筑公司网站
  • 网站建设 长摊 无形资产想用自己电脑做服务器做个网站吗
  • 财政局网站建设自查报告quick chat wordpress
  • 博客网站开发技术金华网站建设公司招聘
  • 怎么编辑网站内容长春建设工程信息网站
  • 大型门户网站开发教程简单又快的科学小制作
  • 免费网站空间域名肃宁县做网站价格
  • 北京金创网站建设自己做的网站算广告吗
  • 集宁网站建设十大不收费看盘软件排名
  • html网站源码wordpress板娘插件
  • 广州黄埔做网站公司哪家好wordpress php7 报错
  • 网站建设的一般流程是杭州市拱墅区建设局网站
  • 建设工程规范在哪个网站下载wordpress 个人
  • 建设一个网络交友的网站的论文网站商务通js代码
  • 个人网站 网站教程安卓apk开发
  • 做进口假体下巴的网站网页源代码怎么打开
  • 怎样找到网站建设设置模板html5网站建设企业