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

网站建设福州wordpress文件上传类型

网站建设福州,wordpress文件上传类型,wordpress 数据库备份插件,公司模板网站建设我是一名初学者#xff0c;如果你发现文中有错误#xff0c;请留言告诉我#xff0c;谢谢 如果需要检测到图像里面的边缘#xff0c;首先我们需要知道边缘处具有什么特征。 对于一幅灰度图像来说#xff0c;边缘两边的灰度值肯定不相同#xff0c;这样我们才能分辨出哪里…我是一名初学者如果你发现文中有错误请留言告诉我谢谢   如果需要检测到图像里面的边缘首先我们需要知道边缘处具有什么特征。 对于一幅灰度图像来说边缘两边的灰度值肯定不相同这样我们才能分辨出哪里是边缘哪里不是。 因此如果我们需要检测一个灰度图像的边缘我们需要找出哪里的灰度变化最大。显然灰度变化越大对比度越强边缘就越明显。 那么问题来了我们怎么知道哪里灰度变化大哪里灰度变化小呢  导数梯度边缘信息  在数学中与变化率有关的就是导数。 如果灰度图像的像素是连续的(实际不是)那么我们可以分别原图像G对x方向和y方向求导数 获得x方向的导数图像Gx和y方向的导数图像Gy。Gx和Gy分别隐含了x和y方向的灰度变化信息也就隐含了边缘信息。 如果要在同一图像上包含两个方向的边缘信息我们可以用到梯度。梯度是一个向量 原图像的梯度向量Gxy为Gx,Gy,梯度向量的大小和方向可以用下面两个式子计算 角度值好像需要根据向量所在象限不同适当pi或者-pi。 梯度向量大小就包含了x方向和y方向的边缘信息。    图像导数  实际上图像矩阵是离散的。 连续函数求变化率用的是导数而离散函数求变化率用的是差分。 差分的概念很容易理解就是用相邻两个数的差来表示变化率。 下面公式是向后差分 x方向的差分Gx(n,y) G(n,y)-G(n-1,y) y方向的差分Gy(x,n) G(x,n)-G(x,n-1)  实际计算图像导数时我们是通过原图像和一个算子进行卷积来完成的(这种方法是求图像的近似导数)。 最简单的求图像导数的算子是 Prewitt算子 x方向的Prewitt算子为 y方向的Prewitt算子为 --------------------------------------------- 原图像和一个算子进行卷积的大概过程如下 如果图像矩阵中一块区域为 那么x5处的x方向的导数是将x方向算子的中心和x5重合然后对应元素相乘再求和即 x5处的x方向导数为x3x6x9-x1-x4-x7 对矩阵中所有元素进行上述计算就是卷积的过程。 -------------------------------------------- 因此利用原图像和x方向Prewitt算子进行卷积就可以得到图像的x方向导数矩阵Gx 利用原图像和y方向Prewitt算子进行卷积就可以得到图像的y方向导数矩阵Gy。 利用公式 就可以得到图像的梯度矩阵Gxy这个矩阵包含图像x方向和y方向的边缘信息。    Python实现卷积及Prewitt算子的边缘检测   首先我们把图像卷积函数封装在一个名为imconv的函数中  ( 实际上scipy库中的signal模块含有一个二维卷积的方法convolve2d()  ) import numpy as np from PIL import Imagedef imconv(image_array,suanzi):计算卷积参数image_array 原灰度图像矩阵suanzi 算子返回原图像与算子卷积后的结果矩阵image image_array.copy() # 原图像矩阵的深拷贝dim1,dim2 image.shape# 对每个元素与算子进行乘积再求和(忽略最外圈边框像素)for i in range(1,dim1-1):for j in range(1,dim2-1):image[i,j] (image_array[(i-1):(i2),(j-1):(j2)]*suanzi).sum()# 由于卷积后灰度值不一定在0-255之间统一化成0-255image image*(255.0/image.max())# 返回结果矩阵return image   然后我们利用Prewitt算子计算x方向导数矩阵Gxy方向导数矩阵Gy和梯度矩阵Gxy。 import numpy as np import matplotlib.pyplot as plt# x方向的Prewitt算子 suanzi_x np.array([[-1, 0, 1],[ -1, 0, 1],[ -1, 0, 1]])# y方向的Prewitt算子 suanzi_y np.array([[-1,-1,-1],[ 0, 0, 0],[ 1, 1, 1]])# 打开图像并转化成灰度图像 image Image.open(pika.jpg).convert(L)# 转化成图像矩阵 image_array np.array(image)# 得到x方向矩阵 image_x imconv(image_array,suanzi_x)# 得到y方向矩阵 image_y imconv(image_array,suanzi_y)# 得到梯度矩阵 image_xy np.sqrt(image_x**2image_y**2) # 梯度矩阵统一到0-255 image_xy (255.0/image_xy.max())*image_xy# 绘出图像 plt.subplot(2,2,1) plt.imshow(image_array,cmapcm.gray) plt.axis(off) plt.subplot(2,2,2) plt.imshow(image_x,cmapcm.gray) plt.axis(off) plt.subplot(2,2,3) plt.imshow(image_y,cmapcm.gray) plt.axis(off) plt.subplot(2,2,4) plt.imshow(image_xy,cmapcm.gray) plt.axis(off) plt.show()    Prewitt算子 的结果如下图所示 上方左图为原图像右图为x方向导数图像 下方左图为y方向导数图像右图为梯度图像 从图中可以看出Prewitt算子虽然能检测出图像边缘但是检测结果较为粗糙还带有大量的噪声。    近似导数的Sobel算子  Sobel算子与Prewitt比较类似但是它比Prewitt算子要好一些。 x方向的Sobel算子为 y方向的Sobel算子为 python代码只需要将上面代码中的Prewitt算子改成Sobel算子即可。 # x方向的Sobel算子 suanzi_x np.array([[-1, 0, 1],[ -2, 0, 2],[ -1, 0, 1]])# y方向的Sobel算子 suanzi_y np.array([[-1,-2,-1],[ 0, 0, 0],[ 1, 2, 1]])  Sobel算子 的结果如下图所示 上方左图为原图像右图为x方向导数图像 下方左图为y方向导数图像右图为梯度图像 从图中看出比较Prewitt算子和Sobel算子Sobel算子稍微减少了一点噪声但噪声还是比较多的。  近似二阶导数的Laplace算子  Laplace算子是一个二阶导数的算子它实际上是一个x方向二阶导数和y方向二阶导数的和的近似求导算子。 实际上Laplace算子是通过Sobel算子推导出来的。 Laplace算子为 Laplace还有一种扩展算子为 为了不再重复造轮子这次我们运用scipy库中signal模块的convolve()方法来计算图像卷积。 convolve()的第一个参数是原图像矩阵第二个参数为卷积算子然后指定关键字参数modesame(输出矩阵大小和原图像矩阵相同)。 import numpy as np from PIL import Image import matplotlib.pyplot as plt import matplotlib.cm as cm import scipy.signal as signal # 导入sicpy的signal模块# Laplace算子 suanzi1 np.array([[0, 1, 0], [1,-4, 1],[0, 1, 0]])# Laplace扩展算子 suanzi2 np.array([[1, 1, 1],[1,-8, 1],[1, 1, 1]])# 打开图像并转化成灰度图像 image Image.open(pika.jpg).convert(L) image_array np.array(image)# 利用signal的convolve计算卷积 image_suanzi1 signal.convolve2d(image_array,suanzi1,modesame) image_suanzi2 signal.convolve2d(image_array,suanzi2,modesame)# 将卷积结果转化成0~255 image_suanzi1 (image_suanzi1/float(image_suanzi1.max()))*255 image_suanzi2 (image_suanzi2/float(image_suanzi2.max()))*255# 为了使看清边缘检测结果将大于灰度平均值的灰度变成255(白色) image_suanzi1[image_suanzi1image_suanzi1.mean()] 255 image_suanzi2[image_suanzi2image_suanzi2.mean()] 255# 显示图像 plt.subplot(2,1,1) plt.imshow(image_array,cmapcm.gray) plt.axis(off) plt.subplot(2,2,3) plt.imshow(image_suanzi1,cmapcm.gray) plt.axis(off) plt.subplot(2,2,4) plt.imshow(image_suanzi2,cmapcm.gray) plt.axis(off) plt.show()   结果如下图 其中上方为原图像 下方左边为Laplace算子结果右边为Laplace扩展算子结果 从结果可以看出laplace算子似乎比前面两个算子prewitt算子和Sobel算子要好一些噪声减少了但还是比较多。 而Laplace扩展算子的结果看上去比Laplace的结果少一些噪声。  降噪后进行边缘检测   为了获得更好的边缘检测效果可以先对图像进行模糊平滑处理目的是去除图像中的高频噪声。 python程序如下 首先用标准差为5的5*5高斯算子对图像进行平滑处理然后利用Laplace的扩展算子对图像进行边缘检测。 import numpy as np from PIL import Image import matplotlib.pyplot as plt import matplotlib.cm as cm import scipy.signal as signal# 生成高斯算子的函数 def func(x,y,sigma1):return 100*(1/(2*np.pi*sigma))*np.exp(-((x-2)**2(y-2)**2)/(2.0*sigma**2))# 生成标准差为5的5*5高斯算子 suanzi1 np.fromfunction(func,(5,5),sigma5)# Laplace扩展算子 suanzi2 np.array([[1, 1, 1],[1,-8, 1],[1, 1, 1]])# 打开图像并转化成灰度图像 image Image.open(pika.jpg).convert(L) image_array np.array(image)# 利用生成的高斯算子与原图像进行卷积对图像进行平滑处理 image_blur signal.convolve2d(image_array, suanzi1, modesame)# 对平滑后的图像进行边缘检测 image2 signal.convolve2d(image_blur, suanzi2, modesame)# 结果转化到0-255 image2 (image2/float(image2.max()))*255# 将大于灰度平均值的灰度值变成255白色便于观察边缘 image2[image2image2.mean()] 255# 显示图像 plt.subplot(2,1,1) plt.imshow(image_array,cmapcm.gray) plt.axis(off) plt.subplot(2,1,2) plt.imshow(image2,cmapcm.gray) plt.axis(off) plt.show()   结果如下图 从图中可以看出经过降噪处理后边缘效果较为明显。   参考列表 1. 《python计算机视觉编程》  2. 网络感谢百度感觉网络上分享知识的网友 实际上一些现成的Python库已经对边缘检测过程进行了封装效果和效率更为出色。 文中以自己的python代码进行边缘检测实际上是想对实际过程有更好的认识和了解  转载于:https://www.cnblogs.com/smallpi/p/4555854.html
http://www.zqtcl.cn/news/498540/

相关文章:

  • 网站后台文章添加成功 不显示公司设计网站建设合同
  • 后端开发需要掌握哪些知识潍坊优化公司
  • 专业手机网站制作哪家好wordpress wp-polls
  • 网站建设前分析网页制作素材按钮
  • 做视频网站怎么对接云盘松江新城网站建设
  • 温州阿里巴巴网站建设企业宣传片怎么拍
  • 淮阳住房城乡建设局网站阿里巴巴做国际网站要多少钱
  • 电子商务个人网站可以备案吗短网址还原
  • 网站内容由什么组成部分组成部分电子商务网站建设主管的策划书
  • 云服务器安装win系统做网站seo三人行论坛
  • 电气网站设计机械设计软件solidworks
  • 内网网站建设所需硬件设备厦门关键词排名提升
  • 网站动态海报效果怎么做的最专业网站建
  • 学校如何建设网站北京市住房及城乡建设部网站
  • 响应式网站制作流程全国城建培训中心官网查询证书
  • 北京工程建设信息网站中国市场网
  • xml做网站源码免费网站是
  • 中国工商建设标准化协会网站织梦app网站模板
  • 怎么做好网络销售文大侠seo博客
  • wish网站应该怎么做网站建设前规划
  • 网站建设目的是什么建筑机械人才培训网官网
  • 建筑建设行业网站大型购物网站开发
  • 手机网站开发用什么设计之家网
  • 网站开发平台有哪些什么是网络开发
  • 学校网站前置审批网站做哪些比较有意思
  • 怎么给企业做网站学计算机网站建设
  • 网站关键词优化排名技巧aiyuan wordpress
  • 建设工程资质证书二维码扫描网站自己做的网站如何让qq登录
  • 网站域名有效期wordpress 特别慢
  • 建立个人网站服务器如何用dedecms做网站