本文使用环境为:
cv.copyMakeBorder
是OpenCV库中的一个函数,用于在图像周围添加边框(padding)。这个函数可以用于图像的预处理、增强等任务。它的基本语法如下:
dst = cv.copyMakeBorder(src, top, bottom, left, right, borderType, value)
src
:输入图像,可以是彩色或灰度图像。top
、bottom
、left
和right
:分别表示上、下、左、右方向上的边框宽度。如果设置为负数,则表示自动计算边框宽度。borderType
:边框类型,可以是上述提到的任意一种类型。value
:边框的颜色值。对于彩色图像,需要提供一个包含三个元素的元组(例如:(0, 0, 0)表示黑色);对于灰度图像,需要提供一个单一的数值(例如:0表示黑色)。其中,cv.copyMakeBorder
支持以下几种边框类型:
注:执行下面代码,图像显示后:
import sys
from random import randint
import cv2 as cv
def main(argv):
borderType = cv.BORDER_CONSTANT
window_name = "copyMakeBorder Demo"
src = cv.imread(cv.samples.findFile('data/lena.jpg'), cv.IMREAD_COLOR)
## [create_window]
cv.namedWindow(window_name, cv.WINDOW_AUTOSIZE)
top = int(0.05 * src.shape[0]) # shape[0] = rows
bottom = top
left = int(0.05 * src.shape[1]) # shape[1] = cols
right = left
while 1:
# 待填充的随机颜色
value = [randint(0, 255), randint(0, 255), randint(0, 255)]
dst = cv.copyMakeBorder(src, top, bottom, left, right, borderType, None, value)
cv.imshow(window_name, dst)
c = cv.waitKey(500)
if c == 27:
break
elif c == 99: # 99 = ord('c')
borderType = cv.BORDER_CONSTANT
elif c == 114: # 114 = ord('r')
borderType = cv.BORDER_REPLICATE
return 0
if __name__ == "__main__":
main(sys.argv[1:])
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- huatuoyibo.net 版权所有 湘ICP备2023021910号-2
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务