图像形态学与图像减法的边界提取

原始图用这个吧:
图像形态学与图像减法的边界提取_第1张图片

内边界提取

内边界提取通常可以用原图减去其腐蚀图,代码如下:

import cv2
import numpy as np



I = cv2.imread('D:/Programs/Python/Python36/blob.jpg',0)
ret,img = cv2.threshold(I,127,255,cv2.THRESH_BINARY_INV)
#m,n =img.shape

kernel = np.ones((3,3),np.uint8)
r=cv2.erode(img,kernel,iterations=1)

#边缘提取
e=img-r

cv2.imshow('img',img)
cv2.imshow('erode',r)
cv2.imshow('edge',e)
cv2.imwrite('edge.png',e)
cv2.waitKey(0)
cv2.destroyAllWindows()

结果如下:图像形态学与图像减法的边界提取_第2张图片

外边界提取

外边界提取可以用膨胀减去原图:

import cv2
import numpy as np


I = cv2.imread('D:/Programs/Python/Python36/blob.jpg',0)
ret,img = cv2.threshold(I,127,255,cv2.THRESH_BINARY_INV)
#m,n =img.shape

kernel = np.ones((3,3),np.uint8)
d = cv2.dilate(img,kernel,iterations=1)

#边缘提取
e=d-img

cv2.imshow('img',img)
cv2.imshow('erode',d)
cv2.imshow('edge',e)
cv2.imwrite('edge.png',e)
cv2.waitKey(0)
cv2.destroyAllWindows()

效果图如下;图像形态学与图像减法的边界提取_第3张图片

你可能感兴趣的:(图像处理算法)