img = cv.imread('img\cat1.png')
roi = img[240:380,350:470]
# roi[:] = (0,0,255)
cv.imshow('roi',roi)
cv.imshow('img',img)
cv.waitKey(0)
cv.destroyAllWindows()
tips:对图像切片进行修改也会同时改变原图像,这是由于切片返回的是原图像的一个视图
img1 = cv.imread(r"D:\AI\笔记课件\images\bg.png")
img2 = cv.imread(r"D:\AI\笔记课件\images\logohq.png")
h,w = img2.shape[:2]
roi = img1[0:h,0:w]
img2_gray = cv.cvtColor(img2,cv.COLOR_BGR2GRAY)
_,img2_mask_1 = cv.threshold(img2_gray,thresh=127,maxval=255,type=cv.THRESH_BINARY_INV)
logo = cv.bitwise_and(img2,img2,mask=img2_mask_1)
_,img2_mask_2 = cv.threshold(img2_gray,thresh=127,maxval=255,type=cv.THRESH_BINARY)
bg = cv.bitwise_and(roi,roi,mask=img2_mask_2)
roi[:] = bg + logo
img = cv.imread(r"D:\AI\笔记课件\images\lvbo2.png")
img_bulr = cv.blur(img,ksize=(3,3),borderType=cv.BORDER_REFLECT_101)
cv.imshow('bulr',img_bulr)
cv.imshow('img',img)
cv.waitKey(0)
cv.destroyAllWindows()
k e r n e l = a [ 1 1 1 1 1 1 1 1 1 ] k e r n e l={a}{\Bigg[}\begin{array}{l l l}{1}&{1}&{1}\\{1}&{1}&{1}\\{1}&{1}&{1}\end{array}{\Bigg]} kernel=a[111111111]
img = cv.imread(r"D:\AI\笔记课件\images\lvbo2.png")
img_box_1 = cv.boxFilter(img,-1,(3,3),normalize=True)
img_box_2 = cv.boxFilter(img,-1,(3,3),normalize=False)
cv.imshow('img_box',img_box_2)
cv.waitKey(0)
cv.destroyAllWindows()
img = cv.imread(r"D:\AI\笔记课件\images\lvbo2.png")
img_gauss = cv.GaussianBlur(img,(3,3),1)
cv.imshow('img_gauss',img_gauss)
cv.imshow('img',img)
cv.waitKey(0)
cv.destroyAllWindows()
img = cv.imread(r"D:\AI\笔记课件\images\lvbo3.png")
img_medium = cv.medianBlur(img,3)
cv.imshow('img_medium',img_medium)
cv.imshow('img',img)
cv.waitKey(0)
cv.destroyAllWindows()
img = cv.imread(r"D:\AI\笔记课件\images\lvbo2.png")
img_bilate = cv.bilateralFilter(img,3,100,100)
cv.imshow('img_gauss',img_gauss)
cv.imshow('img',img)
cv.waitKey(0)
cv.destroyAllWindows()
tips:在进行滤波计算的过程中,遇到边界没有像素值时默认使用边界反射101进行填充
斑点和椒盐噪声优先使用中值滤波。
要去除噪点的同时尽可能保留更多的边缘信息,使用双边滤波。
线性滤波方式:均值滤波、方框滤波、高斯滤波。
非线性滤波方式:中值滤波、双边滤波(速度相对慢)。
THE END