网络编程
位置:首页>> 网络编程>> Python编程>> opencv之为图像添加边界的方法示例

opencv之为图像添加边界的方法示例

作者:core!  发布时间:2022-03-25 03:37:20 

标签:opencv,图像,边界

我们经常会有对图像边缘做扩展的需求.比如

希望卷积后得到的矩阵大小不变希望改变图像大小,但是不改变宽高比opencv实现

opencv中使用copyMakeBorder()来完成这一功能

api

opencv之为图像添加边界的方法示例

  1. src是原图像矩阵

  2. dst是新图像矩阵

  3. top/bottom/left/right是边界扩展的大小(比如5就代表5个像素)

  4. borderType

  5. value是扩充的像素填什么值

borderType分两种:

BORDER_CONSTANT
边缘填充用固定像素值,比如填充黑边,就用0,白边255

BORDER_REPLICATE
用原始图像相应的边缘的像素去做填充,看起来有一种把图像边缘"拉糊了"的效果

opencv示例


import sys
import cv2 as cv

def test():
src = cv.imread("/home/sc/disk/keepgoing/opencv_test/lights.jpeg")
top = int(0.05 * src.shape[0]) # shape[0] = rows
bottom = top
left = int(0.04 * src.shape[1]) # shape[1] = cols
right = left

value = [0,0,0]
borderType = cv.BORDER_CONSTANT
dst1 = cv.copyMakeBorder(src, top, bottom, left, right, borderType, None, value)

borderType = cv.BORDER_REPLICATE
dst2 = cv.copyMakeBorder(src, top, bottom, left, right, borderType, None, value)

cv.imshow("blackborder",dst1)
cv.imshow("BORDER_REPLICATE",dst2)

if 27 == cv.waitKey():
 cv.destroyAllWindows()

test()

效果如下:

opencv之为图像添加边界的方法示例

来源:https://www.cnblogs.com/sdu20112013/p/11643420.html

0
投稿

猜你喜欢

手机版 网络编程 asp之家 www.aspxhome.com