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

Olga ·
更新时间:2024-11-10
· 552 次阅读

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

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

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

api

src是原图像矩阵 dst是新图像矩阵 top/bottom/left/right是边界扩展的大小(比如5就代表5个像素) borderType 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的PHP图像人脸识别技术python用opencv批量截取图像指定区域的方法Python OpenCV处理图像之图像像素点操作python opencv 图像尺寸变换方法使用opencv拉伸图像扩大分辨率示例实现opencv图像裁剪分屏显示示例OpenCV实现多图像拼接成一张大图OpenCV图像分割中的分水岭算法原理与应用详解python opencv 图像拼接的实现方法Python Opencv实现图像轮廓识别功能



边界 示例 方法 opencv

需要 登录 后方可回复, 如果你还没有账号请 注册新账号
相关文章