- 画像の黒い領域が腐食し、大きくなり
ます。腐食の影響は、画像を「薄く」することです。原則は、元の画像の小さな領域で極小値をとることです。このカーネルは、モルフォロジー演算が実際には畳み込みによって実装されるため、構造要素とも呼ばれます。構造要素は、長方形/楕円/十字にすることができます。cv2.getStructuringElement()を使用して、次のようなさまざまな形状の構造要素を生成できます。kernel = cv2.getStructuringElement(cv2.MORPH_RECT, (5, 5)) # 矩形结构 kernel
image = imread('image.jpg')
show(image)
image = imread('image.jpg')
kernel = np.ones((5, 5), np.uint8)
erosion = cv2.erode(image,kernel)
show(erosion)
- 画像の拡大は腐食の反対です。極大値が取られます。効果は画像を「太く」することです:(白い領域が大きくなります)
dilation = cv2.dilate(image,kernel)
show(dilation)
- 開放操作
開放操作
は開放操作と呼ばれ(最初の腐食により物体が分離するため覚えやすいため)、その機能は物体を分離して小さな領域を排除することです。この種の形態操作はcv2.morphologyExC関数で実装されます。
image2 = imread('image2.jpg')
show(image2)
opening = cv2.morphologyEx(image2, cv2.MORPH_OPEN, kernel)
show(opening)
- 閉鎖操作
閉鎖操作は反対です。最初に膨張してから腐食します(最初に膨張すると白い部分が膨張して、オブジェクトの小さなブラックホールが除去/「閉じ」られるため、閉鎖操作と呼ばれます。
closing = cv2.morphologyEx(image2, cv2.MORPH_CLOSE, kernel)
show(closing)
closing = cv2.morphologyEx(image2, cv2.MORPH_OPEN, kernel)
opening = cv2.morphologyEx(closing, cv2.MORPH_CLOSE, kernel)
show(opening)
- 勾配形態勾配
拡張マップから侵食マップ、膨張-侵食を差し引いたもの。これにより、オブジェクトのホイール鄏が取得されます。
gradient = cv2.morphologyEx(image, cv2.MORPH_GRADIENT, kernel)
show(gradient)
- 開封操作を差し引いた後の白い帽子の元の画像:src-openingは、開封操作によって除去された白い点を表示することと同じです
tophat = cv2.morphologyEx(image2, cv2.MORPH_TOPHAT, kernel)
show(tophat)
- ブラックハットクローズ操作後の画像から元の画像を減算します。closeing-srcは、クローズ操作によって除去された黒い点を表示することと同じです。
blackhat = cv2.morphologyEx(image2, cv2.MORPH_BLACKHAT, kernel)
show(blackhat)