原文链接: opencv 开操作和闭操作
上一篇: opencv 膨胀和腐蚀
下一篇: opencv 人脸检测
开操作:去除小的干扰块
闭操作:填充闭合区域
相当于膨胀和腐蚀的组合
# 核的大小和形状
kernel = cv.getStructuringElement(cv.MORPH_RECT, (5, 5))
# 开操作
ret = cv.morphologyEx(binary, cv.MORPH_OPEN, kernel, iterations=5)
# 闭操作
ret = cv.morphologyEx(binary, cv.MORPH_CLOSE, kernel, iterations=5)
开操作
闭操作
import cv2 as cv
import numpy as np
img = cv.imread("tooth.png")
cv.imshow('img', img)
gray = cv.cvtColor(img, cv.COLOR_BGR2GRAY)
cv.imshow('gray', gray)
ret, binary = cv.threshold(gray, 0, 255, cv.THRESH_BINARY | cv.THRESH_OTSU)
cv.imshow('bin', binary)
# 核的大小和形状
kernel = cv.getStructuringElement(cv.MORPH_RECT, (5, 5))
# 开操作
ret = cv.morphologyEx(binary, cv.MORPH_OPEN, kernel, iterations=5)
# 闭操作
ret = cv.morphologyEx(binary, cv.MORPH_CLOSE, kernel, iterations=5)
cv.imshow('ret', ret)
cv.waitKey(0)
设置核形状,可提取直线
import cv2 as cv
import numpy as np
img = cv.imread("tooth.png")
img = cv.imread("line.jpg")
cv.imshow('img', img)
gray = cv.cvtColor(img, cv.COLOR_BGR2GRAY)
cv.imshow('gray', gray)
ret, binary = cv.threshold(gray, 0, 255, cv.THRESH_BINARY_INV | cv.THRESH_OTSU)
cv.imshow('bin', binary)
# 核的大小和形状
kernel = cv.getStructuringElement(cv.MORPH_RECT, (15, 1))
# 开操作
ret = cv.morphologyEx(binary, cv.MORPH_OPEN, kernel, iterations=5)
# 闭操作
# ret = cv.morphologyEx(binary, cv.MORPH_CLOSE, kernel, iterations=5)
cv.imshow('ret', ret)
cv.waitKey(0)