python - 如何在opencv python中的图像周围添加边框

标签 python opencv computer-vision

如果我有一个像下面这样的图像,如何在图像周围添加边框,以使最终图像的整体高度和宽度增加,但原始图像的高度和宽度保持在中间。

enter image description here

最佳答案

以下代码为原始图像的所有四个边添加一个大小为 10 像素的恒定边框。

对于颜色,我假设您要使用背景的平均灰度值,这是我根据图像底部两行的平均值计算得出的。抱歉,有些硬编码,但显示了一般操作方法,可以根据您的需要进行调整。

如果将底部和右侧的边框大小值保留为 0,您甚至会得到一个对称边框。

BORDER_TYPE 的其他值也是可能的,例如 BORDER_DEFAULT、BORDER_REPLICATE、BORDER_WRAP。

更多详情请参阅:http://docs.opencv.org/trunk/d3/df2/tutorial_py_basic_ops.html#gsc.tab=0

import numpy as np
import cv2

im = cv2.imread('image.jpg')
row, col = im.shape[:2]
bottom = im[row-2:row, 0:col]
mean = cv2.mean(bottom)[0]

bordersize = 10
border = cv2.copyMakeBorder(
    im,
    top=bordersize,
    bottom=bordersize,
    left=bordersize,
    right=bordersize,
    borderType=cv2.BORDER_CONSTANT,
    value=[mean, mean, mean]
)

cv2.imshow('image', im)
cv2.imshow('bottom', bottom)
cv2.imshow('border', border)
cv2.waitKey(0)
cv2.destroyAllWindows()

关于python - 如何在opencv python中的图像周围添加边框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36255654/

相关文章:

python - BeautifulSoup .find() 给出 TypeError

c++ - 强大的相机校准

c++ - calibrateCamera opencv 功能不起作用

python - 如何使用 pyav 或 opencv 解码原始 H.264 数据的实时流?

matlab - 使用图像处理进行秃头检测

python - 属性错误 : 'cStringIO.StringO' object has no attribute 'fileno' when using django-imagekit

python - 使用 CouchDB 进行 Flask 分页

python - 如何让 Flake8 处理 F811 错误?

python - 图像处理——消除弧状拖影

math - 如何从一对立体图像对 3D 点进行三角测量?