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之图像线性混合 |

相关推荐
星越华夏5 小时前
计算机视觉:YOLOv12安装环境
人工智能·yolo·计算机视觉
二哈赛车手6 小时前
新人笔记---ApiFox的一些常见使用出错
java·笔记·spring
Yolanda946 小时前
【人工智能】《从零搭建AI问答助手项目(九):Prompt优化》
人工智能·prompt
wj3055853786 小时前
课程 9:模型测试记录与 Prompt 策略
linux·人工智能·python·comfyui
小和尚同志6 小时前
深入使用 skill-creator:结合真实生产级实践
人工智能·aigc
DevSecOps选型指南6 小时前
安全419专访悬镜安全 | 穿越周期在 AI 浪潮中定义数字供应链安全新范式
人工智能
沪漂阿龙7 小时前
面试题详解:GraphRAG 全面解析——知识图谱增强 RAG、Local Search、Global Search、社区摘要、工程落地与评估指标一次讲透
人工智能·知识图谱
WangN27 小时前
Unitree RL Lab 学习笔记【通识】
人工智能·机器学习
haina20197 小时前
海纳AI亮相《科创中国》,解码招聘“智”变之路
人工智能·ai面试·ai招聘
栗子~~7 小时前
JAVA - 二层缓存设计(本地缓冲+redis缓冲+广播所有本地缓冲失效) demo
java·redis·缓存