You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python OpenCV 如何给图像加边框并对边框区域做像素变换

实现方案

以下是两种最常用的实现逻辑,代码基于Python+OpenCV,逻辑简单不易出错:

场景1:总图像尺寸不变,仅修改原图边缘区域为特效边框

这种场景不需要调整画幅,只需要对原图做全图特效处理后,把中心原始区域覆盖回去即可:

  • 第一步:读取原图,设定边框宽度
import cv2
import numpy as np

# 读取原图
img = cv2.imread("你的图像路径.jpg")
h, w = img.shape[:2]
# 设定上下左右边框的宽度,可按需单独调整为不同值
border_size = 50
  • 第二步:对全图做你需要的边框特效处理,示例用高斯模糊,可替换为RGB修改、灰度化、色调调整等任意操作
# 示例:对全图做高斯模糊得到处理后的图,ksize是模糊核大小,必须是奇数
processed_img = cv2.GaussianBlur(img, (25, 25), sigmaX=0)

# 如果你要改RGB值比如给边框加蓝色调,可以用这几行替换上面的模糊代码
# processed_img = img.copy()
# processed_img[:, :, 0] = cv2.add(processed_img[:, :, 0], 60) # B通道加60,整体偏蓝
  • 第三步:把原图的中心区域直接覆盖到处理后的图对应位置,中心区域完全保留原始内容
# 坐标范围:y从border_size到h-border_size,x从border_size到w-border_size
processed_img[border_size:h-border_size, border_size:w-border_size] = img[border_size:h-border_size, border_size:w-border_size]

# 保存或展示结果
cv2.imwrite("output.jpg", processed_img)

场景2:在原图之外额外拓展外围边框,总图像尺寸变大

如果需要在原图画幅外面加特效边框,逻辑类似,只需要先生成拓展后的特效底图,再把原图贴到中心即可:

import cv2
import numpy as np

img = cv2.imread("你的图像路径.jpg")
h, w = img.shape[:2]
border_size = 100
new_h = h + 2 * border_size
new_w = w + 2 * border_size

# 第一步:生成特效底图,示例是把原图放大到新尺寸后做模糊,你也可以自定义其他填充逻辑
processed_bg = cv2.resize(img, (new_w, new_h))
processed_bg = cv2.GaussianBlur(processed_bg, (35, 35), sigmaX=0)

# 第二步:把原图贴到底图的中心位置
processed_bg[border_size:border_size+h, border_size:border_size+w] = img

cv2.imwrite("output_extend.jpg", processed_bg)

如果需要实现非矩形的中心保留区域,也可以通过生成掩膜(mask)的方式做混合,矩形场景用上面的坐标切片方法是效率最高的。

内容的提问来源于stack exchange,提问作者ubello64

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 01:48:00