python+opencv边界填充

参考具体网站:https://www.cnblogs.com/cyt99/p/12457384.html

边缘填充:因为对于图像的卷积操作,最边缘的像素一般无法处理,所以卷积核中心到不了最边缘像素。这就需要先将图像的边界填充,再根据不同的填充算法进行卷积操作,得到的新图像就是填充后的图像。
函数原型:cv2.copyMakeBorder(src,top, bottom, left, right ,borderType,value)

import cv2
import numpy as ny
import matplotlib.pyplot as plt

image=cv2.imread('F:\opencv\image\gang.jpg')

def cv2_imshow(name,img):
    cv2.imshow(name,img)
    cv2.waitKey()
    cv2.destroyAllWindows()
    top_size,bottom_size,left_size,right_size=(100,100,100,100)
replicate=cv2.copyMakeBorder(image,top_size,bottom_size,left_size,right_size,borderType=cv2.BORDER_REPLICATE)#bordertype是边界类型#复制法

reflect=cv2.copyMakeBorder(image,top_size,bottom_size,left_size,right_size,borderType=cv2.BORDER_REFLECT)#反射法

reflect101=cv2.copyMakeBorder(image,top_size,bottom_size,left_size,right_size,borderType=cv2.BORDER_REFLECT101)

warp=cv2.copyMakeBorder(image,top_size,bottom_size,left_size,right_size,borderType=cv2.BORDER_WRAP)#外包装法

constant=cv2.copyMakeBorder(image,top_size,bottom_size,left_size,right_size,borderType=cv2.BORDER_CONSTANT,value=(0,255,0))#常量法



cv2_imshow('replicate',replicate)
cv2_imshow('reflect',reflect)
cv2_imshow('warp',warp)
cv2_imshow('reflect101',reflect101)
cv2_imshow('constant',constant)

REPLICATEpython+opencv边界填充_第1张图片
REFLECT
python+opencv边界填充_第2张图片

WARPpython+opencv边界填充_第3张图片
REFLECT101python+opencv边界填充_第4张图片

CONSTANTpython+opencv边界填充_第5张图片
在matplotlib.pyplot显示
python+opencv边界填充_第6张图片

你可能感兴趣的:(自学)