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

网站建设预览外包网络推广公司怎么选

网站建设预览,外包网络推广公司怎么选,asp.net开发微网站开发,湖北网络科技有限公司简介:本文深入探讨图像梯度相关知识,详细介绍图像梯度是像素灰度值在不同方向的变化速度,并以 “pig.JPG” 图像为例,通过代码展示如何选取图像部分区域并分析其像素值以论证图像梯度与边缘信息的关联。接着全面阐述了 Sobel 算子&#xff0c…

在这里插入图片描述

简介:本文深入探讨图像梯度相关知识,详细介绍图像梯度是像素灰度值在不同方向的变化速度,并以 “pig.JPG” 图像为例,通过代码展示如何选取图像部分区域并分析其像素值以论证图像梯度与边缘信息的关联。接着全面阐述了 Sobel 算子,包括 ddepth 参数对边缘检测完整性的影响及 dx、dy 参数不同设置的效果差异;Scharr 算子的用法及其相较于 Sobel 算子在准确度上的优势;Laplacian 算子的特性,如在检测微小细节变化方面的优势、对噪声敏感及需先平滑处理的要点,并给出了各算子在图像边缘检测应用中的代码示例与实际效果展示,助力读者深入理解图像梯度与相关算子在图像处理中的作用。
如果本文对你的图像梯度学习有所帮助,请给我点赞收藏关注,我会为你持续提供与OpenCV学习相关的文章。

《图像梯度与常见算子全解析:原理、用法及效果展示》

  • 图像梯度
    • 什么是图像梯度?
  • sobel算子
    • ddepth的用法
    • dx dy参数设置(请记住这里有两个知识点)
  • Scharr算子
  • Laplacian算子(三个知识点)
  • 致谢

图像梯度

什么是图像梯度?

它是指像素灰度值在不同方向的变化速度。我通过OpenCV的代码把这张命名为pig.JPG的图像选择出一部分,给大家展示一下。
这是我项目的文件结构:
在这里插入图片描述
需要图片的可以直接复制,我把他放到文章里了
在这里插入图片描述
我用代码选择出猪猪侠的偏底部的部分展示一下

import numpy as np
import cv2
image = cv2.imread("pig.JPG")
print(image.shape)
image = image[800:850,229:250]
cv2.imshow("image",image)
cv2.waitKey()
cv2.destroyAllWindows()

在这里插入图片描述

我们现在已经把这个猪猪侠的腿部选出来了,我们去打印它的np像素值

import numpy as np
import cv2
image = cv2.imread("pig.JPG")
image = image[800:850,229:250]
print(image)

在这里插入图片描述
我们可以看到灰度值从几十变成一两百差别很大,而图片中的内容恰好对应的是腿部的轮廓。说明梯度变化大的时候针对的就是轮廓。一切都是为了论证这句话:一般情况下,图像梯度计算的是图像的边缘信息
再通过我用画图板画的一张图来证明一下(画的简陋多多包涵):

在这里插入图片描述
水平方向同理,请看下图:
在这里插入图片描述

sobel算子

语法 :
dst = cv2.Sobel(原始图像src,ddepth图像深度,dx 计算水平方向的偏导数 ,dy 计算垂直方向的偏导数,ksize算子大小)
因为不同的参数影响很大,所以要一个一个参数的用法讲

ddepth的用法

比如说我在画图板画出下面这个图,命名为so_1.JPG ,设置图像深度为 0 就是与原图像一致,ksize = 3 dx =1 dy =0
在这里插入图片描述

import numpy as np
so_1_img = cv2.imread("so_1.JPG",cv2.IMREAD_GRAYSCALE)
dst = cv2.Sobel(so_1_img,ddepth = 0,dx = 1,dy = 0,ksize = 3)
cv2.imshow('original',so_1_img)
cv2.imshow("sob",dst)
cv2.waitKey()
cv2.destroyAllWindows()

a
你观察图片可以发现,他只找到了一条的边,可是这个方向的边应该有两条。原因是因为白色是255,黑色是0 白右黑左的时候差值为255,而白左黑右的时候-255,被自动忽略了。
要解决这种方式需要提高ddepth,然后对计算结果取绝对值,因为我读入图片的时候选择的是八位灰度值的,所以我在使用sobel算子可以设置为64位,然后再使用cv2.convertScaleAbs()对图片取绝对值然后就可以出现两条边了。请看下面的代码:

import numpy as np
so_1_img = cv2.imread("so_1.JPG",cv2.IMREAD_GRAYSCALE)
dst = cv2.Sobel(so_1_img,ddepth = cv2.CV_64F,dx = 1,dy = 0,ksize = 3)
ddst = cv2.convertScaleAbs(dst)
cv2.imshow('original',so_1_img)
cv2.imshow("sob",dst)
cv2.imshow("abs_sob",ddst)
cv2.waitKey()
cv2.destroyAllWindows()

在这里插入图片描述

dx dy参数设置(请记住这里有两个知识点)

第一个知识点 设置一者为1 另一者为0可以计算单独方向的轮廓,如果想同时计算那么需要二者使用cv2.addweighted函数一者0.5对水平和竖直方向进行加权。
还是拿同一张图展示:

import numpy as np
so_1_img = cv2.imread("so_1.JPG",cv2.IMREAD_GRAYSCALE)
dst = cv2.Sobel(so_1_img,ddepth = cv2.CV_64F,dx = 1,dy = 0,ksize = 3)
ddst = cv2.convertScaleAbs(dst)
y_dst = cv2.Sobel(so_1_img,ddepth = cv2.CV_64F,dx = 0,dy = 1,ksize = 3)
y_ddst = cv2.convertScaleAbs(y_dst)
add = cv2.addWeighted(ddst,0.5,y_ddst,0.5,0)
cv2.imshow('original',so_1_img)
cv2.imshow("abs_x_sob",ddst)
cv2.imshow("abs_y_sob",y_ddst)
cv2.imshow("add",add)
cv2.waitKey()
cv2.destroyAllWindows()

在这里插入图片描述
第二个知识点是,同时设置dx =1 dy =1与第一个知识点的计算结果并不一致,因为
图像中的边缘并不总是简单的水平或垂直方向。在实际的图像中,边缘可能是倾斜的、弯曲的或者有噪声干扰。
当分别计算和方向梯度并加权相加时,可能会丢失一些复杂边缘的细节信息。而dx = 1、dy = 1的计算方式会以一种不同的角度来捕捉这些复杂边缘的变化,包括对角边缘等,所以结果会和简单加权相加的情况不一致。
我们拿猪猪侠这张图来验证一下

import numpy as np
so_1_img = cv2.imread("pig.JPG",cv2.IMREAD_GRAYSCALE)
dst = cv2.Sobel(so_1_img,ddepth = cv2.CV_64F,dx = 1,dy = 0,ksize = 3)
ddst = cv2.convertScaleAbs(dst)
y_dst = cv2.Sobel(so_1_img,ddepth = cv2.CV_64F,dx = 0,dy = 1,ksize = 3)
y_ddst = cv2.convertScaleAbs(y_dst)
add = cv2.addWeighted(ddst,0.5,y_ddst,0.5,0)
x_y_dst = cv2.Sobel(so_1_img,ddepth = cv2.CV_64F,dx = 1,dy =1,ksize = 3)
x_y_ddst = cv2.convertScaleAbs(x_y_dst)
cv2.imshow('original',so_1_img)
cv2.imshow("add",add)
cv2.imshow("dxdy11",x_y_ddst)
cv2.waitKey()
cv2.destroyAllWindows()

在这里插入图片描述

Scharr算子

用法与sobel一样就是函数名不一样 cv2.Scharr(),有两个区别就是

  1. scharr没有ksize这个参数。
  2. scharr不能同时设置dx dy为1

他比sobel算子准确度更高,是一种改良,我们还用pig.JPG来展示:

import numpy as np
so_1_img = cv2.imread("pig.JPG",cv2.IMREAD_GRAYSCALE)x_y_dst = cv2.Sobel(so_1_img,ddepth = cv2.CV_64F,dx = 1,dy =1,ksize = 3)
x_y_ddst = cv2.convertScaleAbs(x_y_dst)x_scharr = cv2.Scharr(so_1_img,ddepth = cv2.CV_64F,dx = 1,dy =0)
x_sscharr = cv2.convertScaleAbs(x_scharr)y_scharr = cv2.Scharr(so_1_img,ddepth = cv2.CV_64F,dx = 0,dy =1)
y_sscharr = cv2.convertScaleAbs(y_scharr)x_y_sscharr = cv2.addWeighted(x_sscharr,0.5,y_sscharr,0.5,0)cv2.imshow('original',so_1_img)
cv2.imshow("dxdy11",x_y_ddst)
cv2.imshow("scharr",x_y_sscharr)
cv2.waitKey()
cv2.destroyAllWindows()

在这里插入图片描述
明显看出来后者抓住了更多轮廓,下过更好

Laplacian算子(三个知识点)

第一个知识点: 相比于sobel算子,Laplacian 算子在检测一些微小的细节变化(如噪点引起的小波动或者很细的线条)方面可能更有优势。
第二个知识点:由于 Laplacian 算子是二阶导数,它对噪声比较敏感。在图像存在噪声时,噪声点周围的像素值变化会被 Laplacian 算子放大,可能导致误检测出许多假边缘。所以在实际应用中,通常会先对图像进行平滑处理(如使用高斯滤波),然后再应用 Laplacian 算子进行边缘检测,以减少噪声的影响。
第三个知识点,他的语法:
dst = cv2.Laplacian(原始图像src,图像深度ddepth,ksize核尺寸大小,scale缩放因子,delta计算结果+delta说白了就是个附加值,borderType就是个边界样式一般不用修改)
还用pig.JPG这个图片做例子:

import numpy as np
import cv2
img = cv2.imread("pig.JPG",cv2.IMREAD_GRAYSCALE)
lap = cv2.Laplacian(img,cv2.CV_64F)
lap = cv2.convertScaleAbs(lap)
cv2.imshow("original",img)
cv2.imshow("laplacian",lap)
cv2.waitKey()
cv2.destroyAllWindows()

在这里插入图片描述

致谢

本文参考了一些博主的文章,博取了他们的长处,也结合了我的一些经验,对他们表达诚挚的感谢,使我对 图像梯度与算子 有更深入的了解,也推荐大家去阅读一下他们的文章。纸上学来终觉浅,明知此事要躬行:
OpenCV图像处理(十一)—图像梯度
一文讲解图像梯度


文章转载自:
http://cospar.qkrz.cn
http://telegraphic.qkrz.cn
http://underdose.qkrz.cn
http://calculus.qkrz.cn
http://trigonon.qkrz.cn
http://revocation.qkrz.cn
http://boots.qkrz.cn
http://slimsy.qkrz.cn
http://cystocarp.qkrz.cn
http://unbeloved.qkrz.cn
http://grep.qkrz.cn
http://cloudy.qkrz.cn
http://palatal.qkrz.cn
http://turbulence.qkrz.cn
http://aerially.qkrz.cn
http://inappeasable.qkrz.cn
http://carrying.qkrz.cn
http://vaporetto.qkrz.cn
http://superhuman.qkrz.cn
http://magnetogasdynamic.qkrz.cn
http://modernistic.qkrz.cn
http://deoxygenize.qkrz.cn
http://philippopolis.qkrz.cn
http://polylysine.qkrz.cn
http://applaud.qkrz.cn
http://semimonthly.qkrz.cn
http://sussy.qkrz.cn
http://redirect.qkrz.cn
http://roentgenopaque.qkrz.cn
http://psa.qkrz.cn
http://commonplace.qkrz.cn
http://retinopathy.qkrz.cn
http://pavonine.qkrz.cn
http://transcend.qkrz.cn
http://undulation.qkrz.cn
http://inevitably.qkrz.cn
http://overlaid.qkrz.cn
http://affreighter.qkrz.cn
http://noam.qkrz.cn
http://plattdeutsch.qkrz.cn
http://tinfoil.qkrz.cn
http://vernean.qkrz.cn
http://unplucked.qkrz.cn
http://trendy.qkrz.cn
http://incite.qkrz.cn
http://maymyo.qkrz.cn
http://dipsophobiacal.qkrz.cn
http://cingulectomy.qkrz.cn
http://recruiter.qkrz.cn
http://tlo.qkrz.cn
http://deterioration.qkrz.cn
http://antituberculosis.qkrz.cn
http://nachus.qkrz.cn
http://obligee.qkrz.cn
http://biblist.qkrz.cn
http://russophile.qkrz.cn
http://syriac.qkrz.cn
http://intercellular.qkrz.cn
http://chromatology.qkrz.cn
http://detailedly.qkrz.cn
http://auxotroph.qkrz.cn
http://komati.qkrz.cn
http://waldenstrom.qkrz.cn
http://aerosol.qkrz.cn
http://iaea.qkrz.cn
http://climatization.qkrz.cn
http://rangette.qkrz.cn
http://doa.qkrz.cn
http://tier.qkrz.cn
http://hematose.qkrz.cn
http://ncaa.qkrz.cn
http://undoubted.qkrz.cn
http://sociocracy.qkrz.cn
http://inducement.qkrz.cn
http://radioimmunoassay.qkrz.cn
http://envenom.qkrz.cn
http://smackeroo.qkrz.cn
http://odontologist.qkrz.cn
http://dormition.qkrz.cn
http://mitigable.qkrz.cn
http://limiting.qkrz.cn
http://straiten.qkrz.cn
http://pinchcock.qkrz.cn
http://holohedrism.qkrz.cn
http://varicose.qkrz.cn
http://formalin.qkrz.cn
http://gerontophilia.qkrz.cn
http://supernormal.qkrz.cn
http://unsparingly.qkrz.cn
http://lowermost.qkrz.cn
http://porphyrization.qkrz.cn
http://receivership.qkrz.cn
http://ejaculatorium.qkrz.cn
http://rattlepate.qkrz.cn
http://grayly.qkrz.cn
http://tervueren.qkrz.cn
http://superhero.qkrz.cn
http://tomentum.qkrz.cn
http://seedleaf.qkrz.cn
http://ungoverned.qkrz.cn
http://www.hrbkazy.com/news/88675.html

相关文章:

  • 做婚礼请柬的网站有哪些网站seo招聘
  • 珠海营销型网站建设厦门网站推广公司哪家好
  • 做网站加一个定位功能要多少钱举一个网络营销的例子
  • 如何自建淘宝客网站怎么下载百度
  • 国外有什么优秀的网站推荐搜索引擎优化是指什么意思
  • thinkphp做网站广州网站快速优化排名
  • 做企业信用贷的网站建网站
  • 传奇网站劫持怎么做最新做做网站
  • 北京住建网站南京企业网站排名优化
  • vue做的网站营销 推广
  • 一个域名怎么做两个网站网站seo外包公司有哪些
  • 为什么找不到做网站的软件手机百度搜索
  • 自己做网站页面如何做百度关键词推广
  • 做seo的网站推广在线网站建设平台
  • 济南好的网站建设公司排名产品网络营销策划
  • 58同城网招聘网站seo
  • 绍兴免费自助建站头条搜索是百度引擎吗
  • 呼和浩特市建设委员会网站济南网站优化培训
  • 找哪个网站做摩配微信群推广网站
  • 吴兴区建设局网站免费智能seo收录工具
  • 做网站用什么ps软件郴州网络推广外包公司
  • 网站用什么布局徐州百度推广公司
  • 网站建设摘要广告营销推广
  • 888集团浏览器app如何优化网站首页
  • 做外贸网站进行销售 需要纳税吗全球网站排名
  • 哪个网站专门做母婴seo优化策略
  • 一个独立IP做几个网站比较合适长春网站快速优化排名
  • 给网站做脚本算违法吗网站设计用什么软件
  • 沧州建网站搜索引擎优化seo怎么做
  • 做教程网站如何查用户搜索网站收录查询代码