浸食および拡張の侵食および膨張モルフォロジー演算の基礎は動作結合され、異なる効果は、異なる組み合わせによって達成することができる、開放動作及び閉鎖動作を実現するために開発される形態学的勾配演算子、帽子の操作を必要とします
ブラックハット操作、操作やその他の操作の異なる形でヒットミス
機能フォーム
DST = cv2.morphologyEx(SRC、OP、カーネル[、アンカー〔、interations [、borderType [、borderValue]]]])
原画像の種類と同じ大きさのモルフォロジー演算後DST画像、
SRCの画像は、所望の深さとして収縮と膨張操作で、動作する必要があります
OPは、動作のタイプを表します
タイプ | 説明 | 意味 | オペレーティング |
cv2.MORPH_ERODE | 腐食 | 腐食 | むしばむ(SRC) |
cv2.MORPH_DILATE | うねり | うねり | DILATE(SRC) |
cv2.MORPH_OPEN | オープンコンピューティング | 最初の腐食展開した後 | DILATE(むしばむ(SRC)) |
cv2.MORPH_CLOSE | 開閉動作 | 腐食の最初の拡張した後、 | むしばむ(DILATE(SRC)) |
cv2.MORPH_GRADIENT | 形態学的勾配演算子 | 図腐食図拡大保存 | DILATE(SRC)-erode(SRC) |
cv2.MORPH_TOPHAT | トップキャップ操作 | 画像-オープンで算出した元画像を保存 | SRC - オープン(SRC) |
cv2.MORPH_BLACKHAT | ブラックハット操作 | 原画像の結果の画像閉動作保存 | クローズ(SRC) - SRC |
cv2.MORPH_HITMISS | ヒットミス | 前景背景腐食交差点操作。CV_8UC1は、バイナリイメージをサポートしています | 交差点((SRC1)を侵食し、(SRC)をむしばみます) |
一貫性のあるカーネルのアンカーinterations borderType borderValueとcv2.erode()パラメータ意味
オープンコンピューティング
最初の拡大画像エッチングした後、ノイズ除去及び計数のために使用することができます
1つの インポートCV2 2 インポートNPとしてnumpyの 3 IMG = cv2.imread(" opening.bmp " ) 4、K = np.ones((10,10 )、np.uint8) 5 R = cv2.morphologyEx(IMG、cv2.MORPH_OPEN 、K) 6 cv2.imshow(" IMG " 、IMG) 7 cv2.imshow(" 結果" 、R) 8 cv2.waitKey() 9 cv2.destroyAllWindows()
芸術作品
レンダリング
開閉動作
膨張、第一のエッチング、本体開口前景を閉じる助け、除去又はオブジェクト上の黒点後、異なる前景画像を接続するために使用することができます
1 import cv2 2 import numpy as np 3 img = cv2.imread("closing.bmp") 4 k = np.ones((10,10) , np.uint8) 5 r = cv2.morphologyEx( img , cv2.MORPH_CLOSE , k , iterations = 3) 6 cv2.imshow("img" , img) 7 cv2.imshow("result" , r) 8 cv2.waitKey() 9 cv2.destroyAllWindows()
原图
效果图
形态学梯度运算
用图像的膨胀图减去腐蚀图像 可以获取原始图像中前景图像的边缘
1 import cv2 2 import numpy as np 3 img = cv2.imread("gradient.bmp" , cv2.IMREAD_UNCHANGED) 4 k = np.ones((5,5) , np.uint8) 5 r = cv2.morphologyEx(img , cv2.MORPH_GRADIENT , k) 6 cv2.imshow("img" , img) 7 cv2.imshow("result" , r) 8 cv2.waitKey() 9 cv2.destroyAllWindows()
原图
效果图
顶帽运算
用原始图像减去其开运算图像的操作 该操作可以获取图像的噪声信息, 或者得到比原始图像的边缘更亮的边缘信息
1 import cv2 2 import numpy as np 3 img = cv2.imread("tophat.bmp" , cv2.IMREAD_UNCHANGED) 4 k = np.ones((5,5) , np.uint8) 5 r = cv2.morphologyEx(img , cv2.MORPH_TOPHAT , k) 6 cv2.imshow("img", img) 7 cv2.imshow("result" , r) 8 cv2.waitKey() 9 cv2.destroyAllWindows()
原图
效果图
黑帽运算
是用闭运算图像减去原始图像的操作, 黑猫运算能够获取图像内壁的小孔,或前景色中的小黑点, 或者得到比原始图像的边缘
更暗的边缘部分
1 import cv2 2 import numpy as np 3 img = cv2.imread("blackhat.bmp" , cv2.IMREAD_UNCHANGED) 4 k = np.ones((5,5) , np.uint8) 5 r = cv2.morphologyEx(img , cv2.MORPH_BLACKHAT , k) 6 cv2.imshow("img" , img) 7 cv2.imshow("result" , r) 8 cv2.waitKey() 9 cv2.destroyAllWindows()
原图
效果图