首页 > 其他分享 >图片的腐蚀,膨胀,开丶闭运算,梯度计算,礼帽与黑帽

图片的腐蚀,膨胀,开丶闭运算,梯度计算,礼帽与黑帽

时间:2023-04-21 22:56:20浏览次数:28  
标签:kernel 运算 img MORPH 梯度 礼帽 黑帽 iterations cv2

1 腐蚀操作

  用于图片的去毛刺,内容削减

  

 1 #腐蚀操作
 2 #cv2.erode(src,kernel,iterations) 
 3 #src是图片数字化数组
 4 #kernel则是一个盒,对该盒内的像素进行复试操作,值越小腐蚀能力越狠
 5 #iterations是一个迭代次数,就是说你对这个图片进行几次的腐蚀操作
 6 kernel = np.ones((30,30),np.uint8)
 7 erosion1 = cv2.erode(img,kernel,iterations=1)
 8 erosion2 = cv2.erode(img,kernel,iterations=2)
 9 erosion3 = cv2.erode(img,kernel,iterations=3)
10 res = np.hstack((erosion1,erosion2,erosion3))
11 Cv_Show('Erode Picture',res)

2 膨胀操作

 1 #膨胀操作 
 2 #因为在进行腐蚀操作后,原本不需要的腐蚀的地方会变细,此时可以通过膨胀操作加回来
 3 #cv2.dilate(src,kernel,iterations)
 4 #src是图像数字化数组
 5 #Kernel为盒,对该盒内的像素进行膨胀操作,值越小膨胀能力越强
 6 #iterations是一个迭代次数,就是说你对这个图片进行几次的膨胀操作
 7 kernel = np.ones((30,30),np.uint8)
 8 dilate1 = cv2.dilate(img,kernel,iterations=1)
 9 dilate2 = cv2.dilate(img,kernel,iterations=2)
10 dilate3 = cv2.dilate(img,kernel,iterations=3)
11 res = np.hstack((dilate1,dilate2,dilate3))
12 Cv_Show('Erode Picture',res)

3 开运算,闭运算

  

 1 #开运算就是先腐蚀后膨胀,闭运算是先膨胀后腐蚀
 2 #cv2.morphologyEx(src,type,kernel)
 3 #src是图像数字化数组
 4 #type有cv2.MORPH_OPEN,cv2.MORPH_CLOSE两种
 5 #cv2.MORPH_OPEN就是开运算
 6 #cv2.MORPH_CLOSE就是闭运算
 7 #Kernel为盒,对该盒内的像素进行膨胀操作,值越小膨胀能力越强
 8 kernel3 = np.ones((30,30),np.uint8)
 9 opening = cv2.morphologyEx(img,cv2.MORPH_OPEN,kernel3) #使用开运算
10 closeing = cv2.MORPH_OPEN(img,cv2.MORPH_CLOSE,kernel3) #使用闭运算
11 res = np.hstack((opening,closeing))
12 Cv_Show('morphologyEx Picture', res)

4 梯度运算

1 #梯度运算
2 #梯度 = 膨胀 - 腐蚀
3 #梯度运算是为了得到边界变化的信息
4 gradient = cv2.morphologyEx(img,cv2.MORPH_GRADIENT,kernel3)
5 Cv_Show('Gradient Picture', gradient)

5 礼帽与黑帽

1 #礼帽和黑帽
2 #礼帽 = 原始输入 - 开运算结果 从理论上来说,一个带毛刺的图片优化后没有毛刺 - 原始有毛刺的图,那结果是毛刺
3 #黑帽 = 闭运算 - 原始输入 同样,因为先对毛刺先膨胀后腐蚀,所以有些毛刺可能没腐蚀掉,减去原始后,结果是那些没腐蚀掉的毛刺的边缘
4 topHat = cv2.morphologyEx(img,cv2.MORPH_TOPHAT,kernel3)
5 blackHat = cv2.morphologyEx(img,cv2.MORPH_BLACKHAT,kernel3)
6 res = np.hstack((topHat,blackHat))
7 Cv_Show('TopHat vs BlackHat Picture', res)

 

标签:kernel,运算,img,MORPH,梯度,礼帽,黑帽,iterations,cv2
From: https://www.cnblogs.com/mingrufeng/p/17342105.html

相关文章

  • 机器学习的一些基本概念(函数/标准化/梯度下降/正则化)
    基本概念各种函数损失函数(LossFunction)度量单样本****或者一个批次的样本预测的错误程度,损失函数越小,模型就越好。常用的损失函数包括:0-1损失函数、平方损失函数、绝对损失函数、对数损失函数等代价函数(CostFunction)度量全部样本集的平均误差。常用的代价函数包括均方误差、......
  • 深度学习--梯度下降再理解+线性回归
    深度学习--梯度下降再理解+线性回归梯度下降梯度下降的对象是模型的参数,即权重w,偏置项b,通过寻找合适的参数使模型的loss值最小Loss函数是关于输入,输出,权重,偏置项的函数,即:loss=(y-(wx+b))^2。loss值最小,y与wx+b相似。个人思考:如果训练的数据量越大,识别的准确率是越大还是越......
  • 机器学习-梯度消失爆炸
    梯度消失本层的神经元的激活等于上一层神经元对应的权值进行加权和运算,最后通过一个非线性函数(激活函数)如ReLu,sigmoid等函数,最后得到的结果就是本层神经元的输出,逐层逐神经元通过该操作向前传播,最终得到输出层的结果。梯度消失的影响:浅层基本不学习,后面几层一直在学习,失去深度的......
  • 拟合圆的梯度下降法例子
    最近研究了一下梯度下降法,所以写了个拟合圆的方法。拟合圆属于非线性拟合。网上的最小二乘法拟合圆公式并不是误差的平方,而是4次方(为了去掉公式里的开方)。一般可以先用网上的公式得到一个初始解,然后再用梯度下降法继续求精。下述代码基于VS2017、Qt5.9和OpenCV430,通过了验证。代码......
  • 深度学习基础入门篇[三]:优化策略梯度下降算法:SGD、MBGD、Momentum、Adam、AdamW
    1.梯度下降算法(优化器)1.1原理解释如果我们定义了一个机器学习模型,比如一个三层的神经网络,那么就需要使得这个模型能够尽可能拟合所提供的训练数据。但是我们如何评价模型对于数据的拟合是否足够呢?那就需要使用相应的指标来评价它的拟合程度,所使用到的函数就称为损失函数(LossFu......
  • 烟雨黑帽技术程序演示:AI智能模板在线制作制作神器-单域名版+多域名版-一键批量制作黑
    烟雨黑帽程序演示:AI智能模板制作神器,用于一键制作黑帽程序模板、零基础小白神器,可直接对接到你程序下使用,支持批量或单个模板的制作。适用于寄生虫、泛目录、站群、蜘蛛池等黑帽程序模板的制作。程序使用极其简单,只需要准备好你想要的模板链接,支持首页或内页,放程序里一键制作即......
  • torch梯度计算相关
    torch梯度计算图计算图中,默认只有叶子结点的梯度能够保留,如果要访问非叶子结点p的梯度数据,需要执行p.retain_grad().torch计算图中requires_grad与detach的区别requi......
  • 2.3 和2.4 logistic回归损失函数、梯度下降
    下图中由给定的每个样本的值和样本对应的标签值得到最终的概率值Loss函数是在单个训练样本中定义的,它衡量了在单个训练样本上的表现,而成本函数cost,它衡量的是在全体训练......
  • 深入浅出--梯度下降法及其实现 https://www.jianshu.com/p/c7e642877b0e
    深入浅出--梯度下降法及其实现六尺帐篷关注IP属地:上海612018.01.1721:06:22字数3,199阅读348,388梯度下降的场景假设梯度梯度下降算法的数学解释梯度下......
  • 线性回归的梯度下降
    线性回归的梯度下降问题陈述:让我们使用与之前相同的两个数据点-1000平方英尺的房子以300,000美元的价格出售,而2000平方英尺的房屋以500,000美元的价格出售。importmath......