在对图片进行卷积处理的时候,如果卷积模版(卷积内核)过大,且不对原图的边界进行扩充,会导致处理之后得到的图片尺寸变的很小,也就是严重失真。

而扩充边界有多种方法,本文就介绍一下这些填充方法。

  1. 这是原始图像。

    怎么扩充图像的边界(python-opencv)?

  2. 根据图像的边界的像素值,向外扩充图片,每个方向扩充50个像素。

    a = cv2.copyMakeBorder(img,50,50,50,50,cv2.BORDER_REPLICATE)

    怎么扩充图像的边界(python-opencv)?

  3. 把靠近边界的50个像素翻折出去(轴对称):

    a = cv2.copyMakeBorder(img,50,50,50,50,cv2.BORDER_REFLECT)

    怎么扩充图像的边界(python-opencv)?

  4. 这是另一种折射:

    a = cv2.copyMakeBorder(img,50,50,50,50,cv2.BORDER_REFLECT_101)

    不知道有什么区别。

    怎么扩充图像的边界(python-opencv)?

  5. 常数填充:

    a = cv2.copyMakeBorder(img,50,50,50,50,

                           cv2.BORDER_CONSTANT,value=[0,255,0])

    怎么扩充图像的边界(python-opencv)?

  6. a = cv2.copyMakeBorder(img,50,50,50,50,cv2.BORDER_WRAP)

    这是干什么?我有点糊涂。

    怎么扩充图像的边界(python-opencv)?

更多推荐