图像腐蚀
erode()
主要针对二值图像,前景白色。 用卷积核扫描整张图像每个像素,如果卷积核覆盖区域都是白色点就保持白色,否则变成黑色。
# -*- coding: utf-8 -*-
import cv2
import numpy as np
img = cv2.imread("C:\\imgs\\erode.bmp", cv2.IMREAD_UNCHANGED)
kernel = np.ones((5, 5), np.uint8)
result = cv2.erode(img, kernel, iterations=10)
cv2.imshow("img", img)
cv2.imshow("result", result)
cv2.waitKey()
cv2.destroyAllWindows()
图像膨胀
dilate()
图像膨胀是图像腐蚀的逆操作,也是主要针对二值图像,前景白色。用卷积核扫描整张图像每个像素,如果卷积核覆盖区域含有白色点整个卷积核都变成白色,否则保持黑色。
# -*- coding: utf-8 -*-
import cv2
import numpy as np
img = cv2.imread("C:\\imgs\\dilation.bmp", cv2.IMREAD_UNCHANGED)
kernel = np.ones((5, 5), np.uint8)
result = cv2.dilate(img, kernel, iterations=6)
cv2.imshow("img", img)
cv2.imshow("result", result)
cv2.waitKey()
cv2.destroyAllWindows()
开运算
morphologyEx(),op参数传入对应的开运算标志
先腐蚀+再膨胀
# -*- coding: utf-8 -*-
import cv2
import numpy as np
img = cv2.imread("C:\\imgs\\erode.bmp", cv2.IMREAD_UNCHANGED)
kernel = np.ones((10, 10), np.uint8)
result = cv2.morphologyEx(img, cv2.MORPH_OPEN, kernel)
cv2.imshow("img", img)
cv2.imshow("result", result)
cv2.waitKey()
cv2.destroyAllWindows()
闭运算
morphologyEx(),op参数传入对应的闭运算标志
先膨胀+再腐蚀
# -*- coding: utf-8 -*-
import cv2
import numpy as np
img = cv2.imread("C:\\imgs\\closing.bmp", cv2.IMREAD_UNCHANGED)
kernel = np.ones((15, 15), np.uint8)
result = cv2.morphologyEx(img, cv2.MORPH_CLOSE, kernel)
cv2.imshow("img", img)
cv2.imshow("result", result)
cv2.waitKey()
cv2.destroyAllWindows()
梯度运算
morphologyEx(),op参数传入对应的梯度运算标志
# -*- coding: utf-8 -*-
import cv2
import numpy as np
img = cv2.imread("C:\\imgs\\gradient.bmp", cv2.IMREAD_UNCHANGED)
kernel = np.ones((3, 3), np.uint8)
result = cv2.morphologyEx(img, cv2.MORPH_GRADIENT, kernel)
cv2.imshow("img", img)
cv2.imshow("result", result)
cv2.waitKey()
cv2.destroyAllWindows()
顶帽运算
morphologyEx(),op参数传入对应的顶帽运算标志
# -*- coding: utf-8 -*-
import cv2
import numpy as np
img = cv2.imread("C:\\imgs\\tophat.bmp", cv2.IMREAD_UNCHANGED)
kernel = np.ones((5, 5), np.uint8)
result = cv2.morphologyEx(img, cv2.MORPH_TOPHAT, kernel)
cv2.imshow("img", img)
cv2.imshow("result", result)
cv2.waitKey()
cv2.destroyAllWindows()
黑帽运算
morphologyEx(),op参数传入对应的黑帽运算标志
# -*- coding: utf-8 -*-
import cv2
import numpy as np
img = cv2.imread("C:\\imgs\\closing.bmp", cv2.IMREAD_UNCHANGED)
kernel = np.ones((10, 10), np.uint8)
result = cv2.morphologyEx(img, cv2.MORPH_BLACKHAT, kernel)
cv2.imshow("img", img)
cv2.imshow("result", result)
cv2.waitKey()
cv2.destroyAllWindows()