26.java openCV4.x 入门-Imgproc之图像尺寸调整与区域提取

|---------------------------------------------|-------------------------------------------------------------|-----------------------------------------------------------------------|
| 专栏简介 |||
| 💒个人主页 | 📖心灵鸡汤📖 我们唯一拥有的就是今天,唯一能把握的也是今天 建议把本文当作笔记来看,据说专栏目录里面有相应视频🤫 | 📰专栏目录 |

@TOC

一、尺寸调整

1.字段

仅列举部分。

|---------------|--------------------------------------------|
| INTER_AREA | 使用像素关系重采样算法,对于缩小图像来说效果较好 |
| INTER_CUBIC | 使用双三次插值算法,对于缩放图像时效果较好 |
| INTER_LINEAR | 使用线性插值算法,对于缩放图像来说效果较好 |
| INTER_NEAREST | 使用最近邻插值算法,对于放大图像来说效果较好(相对清晰,不过过大时像素块会比较明显) |

2.方法说明

resize 调整图像 src 的大小,使其缩小或放大到指定的大小。

|---------------|-------------------------------------------------------------------------------------------------------|
| resize​(Mat src, Mat dst, Size dsize, double fx, double fy, int interpolation) ||
| 参数: ||
| src | 输入图像. |
| dst | 输出图像;如果 dsize 非零,则输出图像的大小为 dsize,否则由 src.size()、fx 和 fy 计算得出;dst 的类型与 src 相同. |
| dsize | 输出图像的大小;如果它等于零.则计算为:dsize = Size(round(fx*src.cols), round(fy*src.rows))。dsize 或者 fx 和 fy 必须至少有一个非零 |
| fx | 沿水平轴的缩放因子;当它为 0 时,计算为 (double)dsize.width/src.cols. |
| fy | 沿垂直轴的缩放因子;当它为 0 时,计算为 (double)dsize.height/src.rows. |
| interpolation | 插值方法.参见INTER_* |

要缩小图像,通常使用 #INTER_AREA 插值会得到最佳效果;而要放大图像,则通常使用 #INTER_CUBIC(较慢但效果好)或 #INTER_LINEAR(较快且效果也不错)插值会得到最佳效果

java 复制代码
        Mat imread = Imgcodecs.imread("flip.jpg");

        Mat dst = new Mat();
        Imgproc.resize(imread,dst,new Size(),2,2,Imgproc.INTER_LINEAR_EXACT);
        HighGui.imshow("imread",imread);
        HighGui.imshow("dst",dst);
        HighGui.waitKey();

结果

imread dst

二、 矩形区域提取

|-----------|--------------------------------------------|
| getRectSubPix(Mat image, Size patchSize, Point center, Mat patch, int patchType) ||
| 参数: ||
| image | 输入图像. |
| patchSize | 提取的矩形区域的大小 |
| center | 提取的矩形区域的中心点的浮点坐标。中心必须在图像内 |
| patch | 输出的提取的矩形区域 .其大小为 patchSize,与 src 具有相同数量的通道 |
| patchType | 输出矩阵的数据类型 .默认情况下,与 src 相同 |

该函数从src中提取像素,其表达式为:
p a t c h ( x , y ) = s r c ( x + center.x − ( dst.cols − 1 ) ∗ 0.5 , y + center.y − ( dst.rows − 1 ) ∗ 0.5 ) patch(x, y) = src(x + \texttt{center.x} - ( \texttt{dst.cols} -1)*0.5, y + \texttt{center.y} - ( \texttt{dst.rows} -1)*0.5) patch(x,y)=src(x+center.x−(dst.cols−1)∗0.5,y+center.y−(dst.rows−1)∗0.5)

其中非整数坐标的像素值通过双线性插值获得。多通道图像的每个通道都独立处理。图像应为单通道或三通道图像。矩形的中心必须在图像内,但矩形的部分可能位于图像之外。

java 复制代码
        Imgproc.getRectSubPix(imread,new Size(50,50),new Point(imread.cols()/2,imread.rows()/2),patch,-1);

请自行验证

|-------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------|
| 万水千山总是情,本栏完全公开免费。 ||
| 上一篇:Imgproc之点集最小面积外接 | 下一篇:Imgproc之图像线性混合 |

相关推荐
啦啦啦_9999几秒前
2. 分类问题的评估
人工智能·分类·数据挖掘
user29876982706546 分钟前
七、深入 Claude Code CLI 源码:斜杠命令系统详解
人工智能
Lumos_77716 分钟前
Linux -- 线程
java·jvm·算法
KG_LLM图谱增强大模型27 分钟前
Palantir 本体论与知识图谱深度分析及实现路径
人工智能·知识图谱
yzx99101329 分钟前
项目名称:灵犀——基于大模型与知识图谱的全栈智慧创作与协同平台
人工智能·知识图谱
RAG专家29 分钟前
【KG²RAG】结合知识图谱解决RAG 文本块孤立问题
人工智能·知识图谱·rag·检索增强生成
知兀29 分钟前
【MybatisPlus】后端用枚举类,数据库用tinyint,存在枚举类型转换
java
小袁进化之路30 分钟前
黎跃春讲AI智能体运营工程师核心知识图谱(2026完整版)
人工智能·知识图谱
CyberwayTech31 分钟前
赛博威线上营销费用管理:咨询+系统,双轮驱动ROI增长
大数据·人工智能
StockTV31 分钟前
印度股票实时数据 NSE和BSE的实时行情、K 线及指数数据
java·开发语言·spring boot·python