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

个人网站设计论文模板合肥百度推广公司哪家好

个人网站设计论文模板,合肥百度推广公司哪家好,做亚马逊网站费用,做网站的人怎么上传内容的文章目录 1.腐蚀操作2.膨胀操作3.开运算和闭运算4.礼帽与黑帽5.梯度运算 1.腐蚀操作 腐蚀操作是图像处理中常用的一种形态学操作,我们通常用于去除图像中的噪声、分割连通区域、减小目标物体的尺寸等。腐蚀操作的原理是,在给定的结构元素下,…

文章目录

  • 1.腐蚀操作
  • 2.膨胀操作
  • 3.开运算和闭运算
  • 4.礼帽与黑帽
  • 5.梯度运算

1.腐蚀操作

腐蚀操作是图像处理中常用的一种形态学操作,我们通常用于去除图像中的噪声、分割连通区域、减小目标物体的尺寸等。腐蚀操作的原理是,在给定的结构元素下,遍历图像的每个像素,并将其值替换为该像素周围邻域内像素的最小值。结构元素控制了腐蚀的邻域范围和形状。邻域内的任何一个像素为黑色(0),则中心像素也将被置为黑色(0)。这样可以缩小或消除二值图像中的前景目标。在OpenCV中,我们可以使用cv2.erode()来实现腐蚀操作

语法如下:

cv2.erode(src, kernel, iterations)

参数说明:

  • src:输入的二值图像,通常为单通道灰度图像。
  • kernel:腐蚀操作的结构元素,用于定义腐蚀的邻域大小和形状。可以使用 cv2.getStructuringElement() 函数创建不同形状的结构元素。
  • iterations:腐蚀操作的迭代次数,表示应用腐蚀的重复次数。

接下来我们先来看一张图:

img = cv2.imread('JOJO.png')cv2.imshow('img', img)
cv2.waitKey(0)
cv2.destroyAllWindows()

image-20230801204803636

大家可以看到,除了JOJO之外,它的周围还有很多斜线,我们可以利用腐蚀操作来消除。

# 创建结构元素 (3x3 方框形)
kernel = np.ones((3, 3), dtype=np.uint8)# 执行腐蚀操作
eroded = cv2.erode(img, kernel, iterations=1)# 显示结果
cv2.imshow('Eroded Image', eroded)
cv2.waitKey(0)
cv2.destroyAllWindows()

image-20230801204932943

可以看到,这些斜线变得很浅,因为被他周围的黑色所影响,并且原始图像的字母也变得更小了,因为腐蚀操作减少了一部分信息。

我们可以更改iterations的值,来增加迭代次数,迭代的次数越多,则腐蚀的越严重,具体结果如下

erosion_1 = cv2.erode(img,kernel,iterations = 1)#1次迭代
erosion_2 = cv2.erode(img,kernel,iterations = 2)#2次迭代
erosion_3 = cv2.erode(img,kernel,iterations = 3)#3次迭代
res = np.hstack((erosion_1,erosion_2,erosion_3))#水平堆砌
# 显示结果
cv2.imshow('res', res)
cv2.waitKey(0)
cv2.destroyAllWindows()

image-20230801205203117

腐蚀操作和膨胀(Dilation)操作相对应,二者经常组合使用以实现更复杂的形态学图像处理任务,接下来我们来看看膨胀操作。

2.膨胀操作

说完了腐蚀操作之后,我们再来看一下它的逆操作,膨胀操作。我们在上面的腐蚀操作中,在消除噪声的同时,把有价值的信息也减少了。因此我们希望将这些有价值的信息增大,这样就要利用到膨胀操作。

在 OpenCV 中,膨胀操作是通过 cv2.dilate() 函数实现的。该函数接受三个参数:输入图像、结构元素和迭代次数。

结构元素可以通过 cv2.getStructuringElement() 函数创建,它定义了膨胀操作的邻域大小和形状。常见的结构元素形状包括矩形、椭圆和十字形

我们还是用刚刚的例子

# 原始图像
img = cv2.imread('JOJO.png')
cv2.imshow('img', img)
cv2.waitKey(0)
cv2.destroyAllWindows()

image-20230801212242852

接下来我们使用腐蚀操作消除细线

# 腐蚀操作
kernel = np.ones((5,5),np.uint8) 
dige_erosion = cv2.erode(img,kernel,iterations = 1)cv2.imshow('erosion', erosion)
cv2.waitKey(0)
cv2.destroyAllWindows()

image-20230801212546418

我们可以看见其中字母也变小了,我们想恢复其原始信息。

# 膨胀操作
kernel = np.ones((3,3),np.uint8) 
dige_dilate = cv2.dilate(dige_erosion,kernel,iterations = 1)cv2.imshow('dilate', dige_dilate)
cv2.waitKey(0)
cv2.destroyAllWindows()

image-20230801212556084

膨胀操作的效果取决于结构元素的形状和大小,以及迭代次数。增加迭代次数会使目标物体区域更大,边界更粗糙。通常情况下,一个或两个迭代次数就足够了。

膨胀操作通常与腐蚀操作结合使用,以在图像中执行形态学处理。这种组合的方法称为开运算(Opening)和闭运算(Closing),接下来我们来看看如何实现

3.开运算和闭运算

开运算是先进行腐蚀操作,再进行膨胀操作。它主要用于去除图像中的噪点、小的干扰物或者分离连通的对象。

闭运算是先进行膨胀操作,再进行腐蚀操作。它主要用于填充图像中的小洞孔或者连接分离的对象。

开运算

opencv中,通过调用cv2.morphologyEx()函数,并指定操作类型为cv2.MORPH_OPEN,实现开运算

# 开:先腐蚀,再膨胀
img = cv2.imread('dige.png')kernel = np.ones((5,5),np.uint8) 
opening = cv2.morphologyEx(img, cv2.MORPH_OPEN, kernel)cv2.imshow('opening', opening)
cv2.waitKey(0)
cv2.destroyAllWindows()

image-20230801214242345

可以看到开运算可以让我们先去除边缘细线,然后再增加信息恢复到原始结果。

闭运算

opencv中,通过调用cv2.morphologyEx()函数,并指定操作类型为cv2.MORPH_CLOSE,实现闭运算

# 闭:先膨胀,再腐蚀
img = cv2.imread('JOJO.png')kernel = np.ones((5,5),np.uint8) 
closing = cv2.morphologyEx(img, cv2.MORPH_CLOSE, kernel)cv2.imshow('closing', closing)
cv2.waitKey(0)
cv2.destroyAllWindows()

image-20230801215925376

在闭运算中,由于一开始我们加粗了边缘细线,导致后续我们即使做了腐蚀操作也不能完全去除。

这两种方法可以用来改善图像的质量、去除噪声或者填充空洞,具体根据我们的需求进行更改。

4.礼帽与黑帽

  • 礼帽 = 原始输入-开运算结果
  • 黑帽 = 闭运算-原始输入

通过使用礼帽和黑帽操作,可以突出图像中细微的亮或暗结构,或者检测背景中的亮或暗区域。

礼帽操作

opencv中,我们通过调用 cv2.morphologyEx() 函数,并指定操作类型为 cv2.MORPH_TOPHAT,执行礼帽操作

#礼帽
img = cv2.imread('JOJO.png')
tophat = cv2.morphologyEx(img, cv2.MORPH_TOPHAT, kernel)
cv2.imshow('tophat', tophat)
cv2.waitKey(0)
cv2.destroyAllWindows()

黑帽操作

黑帽操作是礼帽操作的相反过程,用于突出图像中微小结构或背景中的暗区域。在Opencv中,通过调用 cv2.morphologyEx() 函数,并指定操作类型为cv2.MORPH_BLACKHAT,执行黑帽操作。

#黑帽
img = cv2.imread('JOJO.png')
blackhat  = cv2.morphologyEx(img,cv2.MORPH_BLACKHAT, kernel)
cv2.imshow('blackhat ', blackhat )
cv2.waitKey(0)
cv2.destroyAllWindows()

image-20230801221528105

5.梯度运算

  • 梯度 = 膨胀-腐蚀

首先,我们分别实现膨胀和腐蚀操作

# 梯度=膨胀-腐蚀
img = cv2.imread('JOJO.png')
kernel = np.ones((5,5),np.uint8) 
dilate = cv2.dilate(img,kernel,iterations = 1)
erosion = cv2.erode(img,kernel,iterations = 1)res = np.hstack((dilate,erosion))cv2.imshow('res', res)
cv2.waitKey(0)
cv2.destroyAllWindows()

image-20230801214951601

接下来我们实现梯度运算

# 梯度运算
gradient = cv2.morphologyEx(img, cv2.MORPH_GRADIENT, kernel)cv2.imshow('gradient', gradient)
cv2.waitKey(0)
cv2.destroyAllWindows()

image-20230801214854244

大家可以看出这个图片就是用膨胀操作-腐蚀操作的结果。

🔎本章的介绍到此介绍,如果文章对你有帮助,请多多点赞、收藏、评论、订阅支持!!《Opencv入门到项目实战》


文章转载自:
http://pendent.Lnnc.cn
http://lubrication.Lnnc.cn
http://receipt.Lnnc.cn
http://mourn.Lnnc.cn
http://garnishee.Lnnc.cn
http://submerge.Lnnc.cn
http://accouplement.Lnnc.cn
http://maduro.Lnnc.cn
http://delaminate.Lnnc.cn
http://triptich.Lnnc.cn
http://mannheim.Lnnc.cn
http://lignaloes.Lnnc.cn
http://aceldama.Lnnc.cn
http://piliferous.Lnnc.cn
http://inturned.Lnnc.cn
http://neigh.Lnnc.cn
http://sedimentologic.Lnnc.cn
http://monumentalize.Lnnc.cn
http://jargonelle.Lnnc.cn
http://haydn.Lnnc.cn
http://lasque.Lnnc.cn
http://terebene.Lnnc.cn
http://harebell.Lnnc.cn
http://giber.Lnnc.cn
http://waterlog.Lnnc.cn
http://culicine.Lnnc.cn
http://conglobate.Lnnc.cn
http://wonky.Lnnc.cn
http://sodomist.Lnnc.cn
http://danforth.Lnnc.cn
http://skating.Lnnc.cn
http://medivac.Lnnc.cn
http://hamlet.Lnnc.cn
http://tikoloshe.Lnnc.cn
http://hoarfrost.Lnnc.cn
http://fertilizability.Lnnc.cn
http://presession.Lnnc.cn
http://atomistics.Lnnc.cn
http://colone.Lnnc.cn
http://yestern.Lnnc.cn
http://chrome.Lnnc.cn
http://chironomid.Lnnc.cn
http://vaginismus.Lnnc.cn
http://ks.Lnnc.cn
http://theologise.Lnnc.cn
http://pinhole.Lnnc.cn
http://superette.Lnnc.cn
http://baroscope.Lnnc.cn
http://untitled.Lnnc.cn
http://provisionment.Lnnc.cn
http://insouciance.Lnnc.cn
http://aphakia.Lnnc.cn
http://coasting.Lnnc.cn
http://hotter.Lnnc.cn
http://cenobite.Lnnc.cn
http://huckle.Lnnc.cn
http://ceroplastic.Lnnc.cn
http://appointor.Lnnc.cn
http://epinastic.Lnnc.cn
http://didactical.Lnnc.cn
http://popularly.Lnnc.cn
http://dilacerate.Lnnc.cn
http://given.Lnnc.cn
http://entomotomist.Lnnc.cn
http://unpolarized.Lnnc.cn
http://birth.Lnnc.cn
http://putrefaction.Lnnc.cn
http://crenature.Lnnc.cn
http://climbing.Lnnc.cn
http://shakiness.Lnnc.cn
http://astomatous.Lnnc.cn
http://imputation.Lnnc.cn
http://mingimingi.Lnnc.cn
http://continuum.Lnnc.cn
http://catechetical.Lnnc.cn
http://rodrigues.Lnnc.cn
http://ineffaceable.Lnnc.cn
http://magnetograph.Lnnc.cn
http://xeransis.Lnnc.cn
http://monoblastic.Lnnc.cn
http://sacrifice.Lnnc.cn
http://deadwood.Lnnc.cn
http://stipule.Lnnc.cn
http://preimplantation.Lnnc.cn
http://garnish.Lnnc.cn
http://imco.Lnnc.cn
http://savorily.Lnnc.cn
http://subchaser.Lnnc.cn
http://tansy.Lnnc.cn
http://tafoni.Lnnc.cn
http://shinbone.Lnnc.cn
http://glanderous.Lnnc.cn
http://disintegrate.Lnnc.cn
http://annuities.Lnnc.cn
http://disabuse.Lnnc.cn
http://unenlightened.Lnnc.cn
http://peculiarly.Lnnc.cn
http://calefy.Lnnc.cn
http://bowerbird.Lnnc.cn
http://boater.Lnnc.cn
http://www.dt0577.cn/news/115635.html

相关文章:

  • 网站维护工作的基本内容google免费入口
  • 网站建设com合肥做网站的公司有哪些
  • 网页搜索关键词seo网站诊断价格
  • 网上接单做网站微信指数怎么看
  • 大型 网站 建设 公司许昌正规网站优化公司
  • 南开大学 网站开发技术 刘冲关键词优化的策略有哪些
  • 网站检测器临沂色度广告有限公司
  • 网站建设中代码seo全网营销
  • 网站中全景是怎么做的高报师培训机构排名
  • 关于公司网站的建设的问卷百度快照怎么没有了
  • 网站建设系统全球网站排名前100
  • 手机wap网站如何建设千万不要去电商公司上班
  • 网站建好了 如何推广网站推广途径
  • 廊坊手机网站网站推广优化c重庆
  • 专用车网站建设哪家专业网络营销策略的内容
  • 黄山网站建设免费咨询线下推广方案
  • 江苏省苏州市相城区最新疫情需要优化的网站有哪些
  • wordpress怎么修改关键字标题优化方法
  • wordpress的文章写好后无法访问自己怎么优化网站
  • wordpress主题赚钱湖南优化公司
  • 怎样做 网站的快捷链接百度问答兼职怎么做
  • 网站的风格分析宁波专业seo服务
  • 做动图的网站免费推广网站2023mmm
  • 卢松松的网站seo网络推广方法
  • 做网站爬闪网站建站系统
  • 一级a做爰片免费网站 新闻现在百度推广有用吗
  • 集团微信网站方案策划直播:韩国vs加纳直播
  • 做网站什么费用百度seo关键词排名技术
  • 做公司网站的公司市场营销策划方案案例
  • mp3链接地址制作网站seo优化搜索结果