opencv图像填充

python 复制代码
import time  # 导入time模块,用于处理时间相关的功能
import cv2  # 导入OpenCV模块,用于图像处理
# 创建窗口
cv2.namedWindow('window', cv2.WINDOW_AUTOSIZE)  # 创建一个名为'window'的窗口,窗口大小自动调整,用户不能手动调整大小
cat = cv2.imread("./9.jpg", 1)  # 使用OpenCV的imread函数读取图片,路径为当前目录下的9.jpg,参数1表示读取彩色图像
# 定义上下左右边界的大小
top_size, bottom_size, left_size, right_size = (50, 50, 50, 50)
# 使用不同的边界类型创建图像边界
replicate = cv2.copyMakeBorder(cat, top_size, bottom_size, left_size, right_size, borderType=cv2.BORDER_REPLICATE)
# BORDER_REPLICATE:复制边缘像素进行填充
BORDER_REFLECT = cv2.copyMakeBorder(cat, top_size, bottom_size, left_size, right_size, borderType=cv2.BORDER_REFLECT)
# BORDER_REFLECT:反射边缘像素进行填充
REFLECT101 = cv2.copyMakeBorder(cat, top_size, bottom_size, left_size, right_size, borderType=cv2.BORDER_REFLECT101)
# BORDER_REFLECT101:类似于BORDER_REFLECT,但是在边缘不会重复像素
WRAP = cv2.copyMakeBorder(cat, top_size, bottom_size, left_size, right_size, borderType=cv2.BORDER_WRAP)
# BORDER_WRAP:包裹边缘像素进行填充,类似于纹理的重复
CONSTANT = cv2.copyMakeBorder(cat, top_size, bottom_size, left_size, right_size, borderType=cv2.BORDER_CONSTANT, value=0)
# BORDER_CONSTANT:使用常量值进行填充,这里是黑色(0)
# 展示图像
cv2.imshow('window', cat)  # 在名为'window'的窗口中显示原始图像
cv2.imshow('replicate', replicate)  # 显示使用BORDER_REPLICATE填充的图像
cv2.imshow('BORDER_REFLECT', BORDER_REFLECT)  # 显示使用BORDER_REFLECT填充的图像
cv2.imshow('REFLECT101', REFLECT101)  # 显示使用BORDER_REFLECT101填充的图像
cv2.imshow('WRAP', WRAP)  # 显示使用BORDER_WRAP填充的图像
cv2.imshow('CONSTANT', CONSTANT)  # 显示使用BORDER_CONSTANT填充的图像
key = cv2.waitKey(0)  # 等待按键事件,参数0表示无限期等待,直到有按键被按下
# 检查按键是否为'q',如果是则销毁所有窗口
if key & 0xFF == ord('q'):  # 将按键的值与0xFF进行按位与操作,以获取正确的ASCII码值,并与'q'的ASCII码比较
    print("准备销毁窗口")  # 如果按下的是'q'键,则打印消息
    cv2.destroyAllWindows()  # 销毁所有OpenCV创建的窗口

· BORDER_REPLICATE:复制法,也就是复制最边缘像素。

·BORDER_ REFLECT :反射法,对感兴趣的图像中的像素在两边进行复制例如:fedcba|abcdefg|hgfedcb

· BORDER_ REFLECT_101 :反射法,也就是以最边缘像素为轴,对称,gfedcl|abcdefgh|gfedcba

· BORDER_WRAP:外包装法defgh|abcdefg h|abcdelg

· BORDER CONSTANT :常量法,常数值填充。




相关推荐
嗯哼python8 分钟前
从 0 到 1 构建 AI 模拟面试系统:RAG + LangGraph 的工程实践
人工智能·面试·职场和发展
空堂与归9 分钟前
分类问题怎么建模?用逻辑回归实现概率预测
人工智能·机器学习·分类·逻辑回归
VisualComponents1 小时前
SEJFO依托Visual Components仿真工具,实现自动化业务销售全面升级
人工智能·机器人·工业自动化·工厂仿真·机器人离线编程
面包狗AI4S1 小时前
GitHub AI4S 项目观察(2026-08-07—2026-08-13)
人工智能·github
AI办公探索者1 小时前
多智能体协作架构:从单Agent到多Agent协同的技术演进
人工智能·ai·架构
V哥AI增长2 小时前
宠物行业GEO机制:AI如何推荐医院与产品
人工智能·搜索引擎·宠物
baidu_259339572 小时前
智慧消防管理系统平台(基于物联网与大数据的城市消防安全解决方案)
大数据·人工智能·物联网·云计算·智慧消防·力安科技·gdliontech.cn
欧阳天羲2 小时前
【升级版】AI毫米波雷达扫描+视觉双鉴激光灭蚊机器人|360°全域侦测+超低误杀+人体安全防护(ESP32+YOLOv8全套开源)
人工智能·安全·机器人
fthux2 小时前
装闭 RenoPit 源码解析(14):Demo模式、健康检查与Docker部署
人工智能·ai·开源·github·open source·renopit