首页 > 其他 > 详细

形态学图像处理

时间:2021-02-07 23:00:57      阅读:39      评论:0      收藏:0      [点我收藏+]

形态学图像处理

  • 图像腐蚀和膨胀

  腐蚀和膨胀是对二值图像的白色部分(高亮部分)而言的,不是黑色部分而言。

  腐蚀就是原图中的高亮部分被腐蚀即“领域被蚕食”,效果图拥有比原图更小的高亮区域。

  膨胀就是图像中的高亮部分进行膨胀即“领域扩张”,效果图拥有比原图更大的高亮区域。

  按数学方面来说,膨胀或者腐蚀操作就是将图像(或图像的一部分区域,我们称之为A)与核(我们称之为B)进行卷积。

    ?腐蚀

  cv2.erode(img,kernel,iterations=1)参数
  img指要进行处理的二值图像
  kernel是核的大小
  iterations是指要进行腐蚀的次数
import cv2
import numpy as np

def cv_show(name,img):
    cv2.imshow(name,img)
    cv2.waitKey(0)
    cv2.destroyAllWindows()

img = cv2.imread(pic.png)
kernel = np.ones((3,3),np.uint8)
erode = cv2.erode(img,kernel,iterations=1)
res = np.hstack((img,erode))
cv_show(res,res)

技术分享图片

pie = cv2.imread(pie.png)
cv_show(img,pie)
kernel = np.ones((30,30),np.uint8)
erosion_1 = cv2.erode(pie,kernel,iterations=1)
erosion_2 = cv2.erode(pie,kernel,iterations=2)
res = np.hstack((img,erosion_1,erosion_2))
cv_show(img,res)

技术分享图片

      ?膨胀

      膨胀跟腐蚀对偶

img = cv2.imread(pic.png)
kernel = np.ones((3,3),np.uint8)
dilate = cv2.dilate(img,kernel,iterations=1)
res = np.hstack((img,dilate))
cv_show(res,res)

技术分享图片

pie = cv2.imread(pie.png)
cv_show(img,pie)
kernel = np.ones((30,30),np.uint8)
erosion_1 = cv2.dilate(pie,kernel,iterations=1)
erosion_2 = cv2.dilate(pie,kernel,iterations=2)
res = np.hstack((pie,erosion_1,erosion_2))
cv_show(img,res)

技术分享图片

  • 开运算和闭运算

    ? 开运算

    开运算是图像先腐蚀后膨胀

img = cv2.imread(pic.png)
kernel = np.ones((5,5),np.uint8)
opening = cv2.morphologyEx(img,cv2.MORPH_OPEN,kernel)
cv_show(img,opening)

技术分享图片

    ? 闭运算

    闭运算是图像先膨胀后腐蚀

img = cv2.imread(pic.png)
kernel = np.ones((5,5),np.uint8)
closeing = cv2.morphologyEx(img,cv2.MORPH_CLOSE,kernel)
cv_show(img,closeing)

技术分享图片

  • 梯度运算

  梯度运算是(膨胀-腐蚀)

pie = cv2.imread(pie.png)
kernel = np.ones((7,7),np.uint8)
gradient = cv2.morphologyEx(pie,cv2.MORPH_GRADIENT,kernel)
cv_show(img,gradient)

技术分享图片

  • 礼帽和黑帽

     ? 礼帽

     礼帽是原始输入-开运算

img = cv2.imread(dige.png)
tophat = cv2.morphologyEx(img,cv2.MORPH_TOPHAT,kernel)
res = np.hstack((img,tophat))
cv_show(res,res)

技术分享图片

    ? 黑帽

    黑帽是闭运算-原始输入

img = cv2.imread(dige.png)
blackhat = cv2.morphologyEx(img,cv2.MORPH_BLACKHAT,kernel)
res = np.hstack((img,blackhat))
cv_show(res,res)

技术分享图片

 

形态学图像处理

原文:https://www.cnblogs.com/empolder-minoz/p/14386687.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!