参考依据
OpenCV-Python官方教程:https://opencv-python-tutroals.readthedocs.io/en/latest/py_tutorials/py_core/py_basic_ops/py_basic_ops.html
设置边界框
如果你想给你的图片设置边界框,就像一个相框一样的东西,你就可以使用cv2.copyMakeBorder()
函数。但其在卷积操作、零填充等也得到了应用,并且可以用于一些数据增广操作。
参数
- src : 输入的图片
- top, bottom, left, right :相应方向上的边框宽度
- borderType:定义要添加边框的类型,它可以是以下的一种:
- cv2.BORDER_CONSTANT:添加的边界框像素值为常数(需要额外再给定一个参数)
- cv2.BORDER_REFLECT:添加的边框像素将是边界元素的镜面反射,类似于
gfedcb|abcdefgh|gfedcba
- cv2.BORDER_REFLECT_101 or cv2.BORDER_DEFAULT:和上面类似,但是有一些细微的不同,类似于
gfedcb|abcdefgh|gfedcba
- cv2.BORDER_REPLICATE:使用最边界的像素值代替,类似于
aaaaaa|abcdefgh|hhhhhhh
- cv2.BORDER_WRAP:不知道怎么解释,直接看吧,
cdefgh|abcdefgh|abcdefg
- value:如果borderType为
cv2.BORDER_CONSTANT
时需要填充的常数值。
实例
代码语言:javascript复制img = cv2.imread('testimg.png')
img = cv2.resize(img,(256,256))
cv2.imshow('origin',img),cv2.waitKey(0),cv2.destroyAllWindows()
replicate = cv2.copyMakeBorder(img,20,20,20,20,cv2.BORDER_REPLICATE)
cv2.imshow('replicate',replicate),cv2.waitKey(0),cv2.destroyAllWindows()
constant = cv2.copyMakeBorder(img,20,20,20,20,cv2.BORDER_CONSTANT,value=(255,255,255))
cv2.imshow('constant',constant),cv2.waitKey(0),cv2.destroyAllWindows()
reflect = cv2.copyMakeBorder(img,20,20,20,20,cv2.BORDER_REFLECT)
cv2.imshow('reflect',reflect),cv2.waitKey(0),cv2.destroyAllWindows()
reflect101 = cv2.copyMakeBorder(img,20,20,20,20,cv2.BORDER_REFLECT_101)
cv2.imshow('reflect101',reflect101),cv2.waitKey(0),cv2.destroyAllWindows()
wrap = cv2.copyMakeBorder(img,20,20,20,20,cv2.BORDER_WRAP)
cv2.imshow('wrap',wrap),cv2.waitKey(0),cv2.destroyAllWindows()
各位看官老爷,如果觉得对您有用麻烦赏个子,创作不易,0.1元就行了。下面是微信乞讨码: