OpenCV图像处理——边界插值函数 borderInterpolate

1. 说明

borderInterpolate 用于在应用滤波器或进行图像变换时,计算外插像素的源位置;它根据指定的边界模式(如复制、反射或环绕),返回相应的"供体(donor)"像素坐标(即参考像素)。该函数将处于图像范围之外的坐标(p)映射回有效的图像范围内(即 0 到 len-1 之间)。

2. 例子

本示例演示了如何手动查找图像边界之外的"虚"坐标处的像素值。

// 创建一个 5x1 单通道矩阵: 10, 20, 30, 40, 50

cv::Mat row = (cv::Mat_<uchar>(1, 5) << 10, 20, 30, 40, 50);

int len = row.cols;

// 我们希望访问 index -2 的位置(越界)

int p = -2;

// 1. BORDER_REPLICATE: aaaaaa|abcdefgh|hhhhhhh

// index-2 将映射到第一个元素(index 0)。

int idxReplicate = cv::borderInterpolate(p, len, cv::BORDER_REPLICATE);

// 2. BORDER_REFLECT: fedcba|abcdefgh|hgfedcb

// index - 2 将沿边缘反射(映射至index 1)。

int idxReflect = cv::borderInterpolate(p, len, cv::BORDER_REFLECT);

// 3. BORDER_WRAP: cdefgh|abcdefgh|abcdefg

// index -2 环绕至末尾(对应于index 3)。

int idxWrap = cv::borderInterpolate(p, len, cv::BORDER_WRAP);

std::cout << "Original row: 10, 20, 30, 40, 50" << std::endl;

std::cout << "Index " << p << " with BORDER_REPLICATE maps to source index: " << idxReplicate << " (Value: " << (int)row.at<uchar>(0, idxReplicate) << ")" << std::endl;

std::cout << "Index " << p << " with BORDER_REFLECT maps to source index: " << idxReflect << " (Value: " << (int)row.at<uchar>(0, idxReflect) << ")" << std::endl;

std::cout << "Index " << p << " with BORDER_WRAP maps to source index: " << idxWrap << " (Value: " << (int)row.at<uchar>(0, idxWrap) << ")" << std::endl;

运行结果:

相关推荐
清酒难寻1 小时前
深度学习进阶(二十四)Swin 的二维 RPE
人工智能·深度学习
步步为营DotNet2 小时前
借助 Microsoft.Extensions.AI 与 ASP.NET Core 10 实现智能 Web 应用故障预测
人工智能·microsoft·asp.net
AI创界者2 小时前
零基础上手!ComfyUI + LTX-2.3 图生视频完整工作流搭建与调优指南(附避坑细节)
大数据·人工智能
怕浪猫2 小时前
AI图片工具到底有哪些?一份按能力维度整理的清单
人工智能
hongmai6668882 小时前
FH8856V310芯片详解:6M高清+0.5TOPS算力,赋能智能安防新方案
人工智能·单片机·嵌入式硬件·物联网·智能家居
一颗小树x2 小时前
NVIDIA Jetson Thor 运行 LLM / VLM:模型全整理与 vLLM 实践
人工智能·llm·jetson·vllm
每日综合2 小时前
蓝白风暴席卷BW2026!雷克沙展台首日燃情纪实
人工智能
To_OC2 小时前
手搓 LangChain 工具调用:原来 Agent 的核心逻辑,就是个 while 循环
人工智能·langchain·llm
Drgfd3 小时前
机器人从工厂走进生活:通用机器人开启大众商用时代
人工智能
硕迪科技SOLIDWORKS3 小时前
SOLIDWORKS与ERP对接不再是研发孤岛:硕迪科技数据同步方案让BOM流转提速百分之三百
人工智能·科技·solidworks与erp