顶帽(tophat)
定义(defination)
API演示
import cv2 as cv
import numpy as np
def top_hat_demo(image):
gray = cv.cvtColor(image,cv.COLOR_BGR2GRAY)
kernel = cv.getStructuringElement(cv.MORPH_RECT,(5,5))
dst = cv.morphologyEx(gray,cv.MORPH_TOPHAT,kernel)
cv.imshow("tophat_origin",dst)
cimage = np.array(gray.shape,np.uint8)
cimage = 100
dst = cv.add(dst,cimage)
cv.imshow("tophat_modification",dst)
scr = cv.imread("D:/academic/picture/opencv_data/lena.jpg")
cv.imshow("input image",scr)
top_hat_demo(scr)
cv.waitKey(0)
cv.destroyAllWindows()
效果
黑帽(blackhat)
定义(defination)
API演示
import cv2 as cv
import numpy as np
def black_hat_demo(image):
gray = cv.cvtColor(image,cv.COLOR_BGR2GRAY)
kernel = cv.getStructuringElement(cv.MORPH_RECT,(5,5))
dst = cv.morphologyEx(gray,cv.MORPH_BLACKHAT,kernel)
cv.imshow("blackhat_origin",dst)
cimage = np.array(gray.shape,np.uint8)
cimage = 100
dst = cv.add(dst,cimage)
cv.imshow("blackhat_modification",dst)
scr = cv.imread("D:/academic/picture/opencv_data/lena.jpg")
cv.imshow("input image",scr)
black_hat_demo(scr)
cv.waitKey(0)
cv.destroyAllWindows()
效果
形态学梯度(gradient)
基本梯度(basic gradient)
定义(defination)
- 基本梯度是用膨胀后的图像减去腐蚀后的图像得到的差值图像,称为梯度图像,也是opencv中支持的计算形态学梯度的方法,而此方法得到梯度又被称为基本梯度。
API演示
import cv2 as cv
import numpy as np
def basic_gradient_demo(image):
gray = cv.cvtColor(image,cv.COLOR_BGR2GRAY)
kernel = cv.getStructuringElement(cv.MORPH_RECT,(5,5))
dst = cv.morphologyEx(gray,cv.MORPH_GRADIENT,kernel)
cv.imshow("basic gradient",dst)
scr = cv.imread("D:/academic/picture/opencv_data/lena.jpg")
cv.imshow("input image",scr)
basic_gradient_demo(scr)
cv.waitKey(0)
cv.destroyAllWindows()
效果
内部梯度与外部梯度(internal gradient and external gradient)
定义(defination)
- 内部梯度是用原图像减去腐蚀后的图像得到的差值图像。
- 外部梯度是用膨胀之后的图像再减去原来的图像得到的差值图像。
API演示
import cv2 as cv
import numpy as np
def gradient_demo(image):
kernel = cv.getStructuringElement(cv.MORPH_RECT,(5,5))
dm = cv.dilate(image,kernel)
em = cv.erode(image,kernel)
dst1 = cv.subtract(image,em)
dst2 = cv.subtract(dm,image)
cv.imshow("internel",dst1)
cv.imshow("externel",dst2)
scr = cv.imread("D:/academic/picture/opencv_data/lena.jpg")
cv.imshow("input image",scr)
gradient_demo(scr)
cv.waitKey(0)
cv.destroyAllWindows()
效果