OpenCV|【opencv】边界模式 borderMode

bordermMode 边界模式有如下几种:

  • cv2.BORDER_CONSTANT 添加常数值为边界值,还需要指定另外一个参数 borderValue,borderValue默认值为(0, 0, 0),当然你可以指定其他值,三个元素分别表示 BGR(不是RGB,要注意哦)
  • cv2.BORDER_REPLICATE 重复最后一个元素。例如: aaaaaa| abcdefgh|hhhhhhh
  • cv2.BORDER_REFLECT 边界元素的镜像。比如: fedcba|abcdefgh|hgfedcb
  • cv2.BORDER_REFLECT_101 / cv2.BORDER_REFLECT101 / cv2.BORDER_DEFAULT 这三个效果一样,例如: gfedcb|abcdefgh|gfedcba
  • cv2.BORDER_WRAP 重复图片: cdefgh| abcdefgh|abcdefg
  • cv.BORDER_TRANSPARENT 原图像该位置的像素值
    OpenCV|【opencv】边界模式 borderMode
    文章图片
下面,我们应用在 图像的仿射变换,指定边界模式参数,看看实际效果如何
import cv2src_img = cv2.imread('./LenaRGB.bmp') rows, cols = src_img.shape[:2]m = cv2.getRotationMatrix2D((cols/2, rows/2), 45, 0.6) dst_img = cv2.warpAffine(src_img, m, (cols, rows), borderMode=cv2.BORDER_CONSTANT, borderValue=https://www.it610.com/article/(123, 200, 100))cv2.imshow('src_img', src_img) cv2.imshow('BORDER_CONSTANT', dst_img) cv2.waitKey() cv2.destroyAllWindows()


上面我们指定了 边界方式为 cv2.BORDER_CONSTANT,填充值(borderValue)为(123, 200, 100)
下面我们依次替换 边界方式的参数值,得到如下效果:(图像标题对应其 边界模式)

【OpenCV|【opencv】边界模式 borderMode】官方文档地址:https://docs.opencv.org/4.0.0/d2/de8/group__core__array.html#gga209f2f4869e304c82d07739337eae7c5a886a5eb6b466854d63f9e742d5c8eefe

    推荐阅读