拐角的检测是先用十字形的结构元素膨胀像素,边缘处“扩张”,角点不发生变化。接着用菱形的结构元素腐蚀原图像,只有在拐角处才会“收缩”,而直线边缘都未发生变化。然后是用X形膨胀原图像,角点膨胀的比边要多。用方形腐蚀图片时,角点恢复原状,而边要腐蚀的更多。所以当两幅图像相减时,只保留了拐角处。
#coding:utf-8
"""
opencv形态学检测拐角
"""
import cv2
import numpy as np
import matplotlib.pyplot as plt
#读取灰度图
img = cv2.imread('images/white.jpg',0)
cv2.imshow('original img',img)
#定义十字型
kernel1 = cv2.getStructuringElement(cv2.MORPH_CROSS,(5,5))
#定义菱形
kernel2 = cv2.getStructuringElement(cv2.MORPH_RECT,(5