OpenCV的resize方法与双线性插值
六月 北京 | 高性能计算之GPU CUDA培训
6月22-24日三天密集式学习 快速带你入门阅读全文>
正文共1328个字,3张图,预计阅读时间6分钟。
训练Object Detection模型SSD完毕之后进入test阶段,每张图像在进入输入层之前需要进行resize操作,以满足CNN模型对输入层size的要求。本文首先介绍了Caffe实现的SSD模型对输入图像的变换规定,引出了OpenCV中的resize方法,最后介绍该方法中的插值参数cv.INTER_LINEAR和该插值方法的原理。
caffe_ssd
caffe_ssd在test阶段,对图像的变换设置如下:
1test_transform_param = { 2'mean_value': [104, 117, 123], 3'force_color': True, 4'resize_param': { 5 'prob': 1, 6 'resize_mode': P.Resize.WARP, 7 'height': resize_height, 8 'width': resize_width, 9 'interp_mode': [P.Resize.LINEAR],10 },11}
以上设定来自ssd_coco.py。
1、'mean_value': [104, 117, 123]是ImageNet图像BGR三个通道的均值。每张图像分别需要减去相应通道的均值,实现中心化。
2、'force_color': True强制采用彩色BGR图像模式,防止灰度图像维度与SSD模型输入层维度不一致。
3、resize_param属性在caffe.proto的ResizeParameter中有说明。
1// Message that stores parameters used by data transformer for resize policy 2message ResizeParameter { 3//Probability of using this resize policy 4optional float prob = 1 [default = 1]; 5enum Resize_mode { 6WARP = 1; 7FIT_SMALL_SIZE = 2; 8FIT_LARGE_SIZE_AND_PAD = 3; 9}10optional Resize_mode resize_mode = 2 [default = WARP];11optional uint32 height = 3 [default = 0];12optional uint32 width = 4 [default = 0];13// A parameter used to update bbox in FIT_SMALL_SIZE mode.14optional uint32 height_scale = 8 [default = 0];15optional uint32 width_scale = 9 [default = 0];16enum Pad_mode {17CONSTANT = 1;18MIRRORED = 2;19REPEAT_NEAREST = 3;20}21// Padding mode for BE_SMALL_SIZE_AND_PAD mode and object centering22optional Pad_mode pad_mode = 5 [default = CONSTANT];23// if specified can be repeated once (would fill all the channels)24// or can be repeated the same number of times as channels25// (would use it them to the corresponding channel)26repeated float pad_value = 6;27enum Interp_mode { //Same as in OpenCV28LINEAR = 1;29AREA = 2;30NEAREST = 3;31CUBIC = 4;32LANCZOS4 = 5;33 }34//interpolation for for resizing35repeated Interp_mode interp_mode = 7;36}
其中的interp_mode采用LINEAR模式对图像进行Resize操作,与Opencv中的resize一致。
接下来,我们具体介绍一下OpenCV中的resize方法。
resize方法的签名
1C++: 2void cv::resize (InputArray src, 3OutputArray dst, 4Size dsize, 5double fx = 0, 6double fy = 0, 7int interpolation = INTER_LINEAR 8) 9Python: 10dst = cv.resize(src, dsize[, dst[, fx[, fy[, interpolation]]]])
参数说明:
1src 输入图像. 2dst 输出图像; 其size为dsize,或由src.size()、fx与fy计算而得; dst类型与src保持一致. 3dsize 输出图像的size; 如果设为0,或(0, 0), 计算方式为: 4
OpenCV的resize方法与双线性插值相关推荐
- python cv2.resize_Python OpenCV 图像缩放 cv2.resize 方法
今天是持续写作的第 42 / 100 天. 如果你有想要交流的想法.技术,欢迎在评论区留言. 本篇博客只学习一个方法,cv2.resize 即图像缩放. 取经之旅第 9 天 铺垫知识 resize 方 ...
- Python OpenCV 图像缩放 cv2.resize 方法
今天是持续写作的第 42 / 100 天. 如果你有想要交流的想法.技术,欢迎在评论区留言. 本篇博客只学习一个方法,cv2.resize 即图像缩放. 取经之旅第 9 天 铺垫知识 resize 方 ...
- 手写数字图片数据之python读取保存、二值化、灰度化图片+opencv处理图片的方法
python 读取.保存.二值化.灰度化图片+opencv处理图片的方法 进行手写数字的图片预测的时候碰到了这样的问题. 先说说处理图片有三种方式 一.matplotlib 二.PIL 三.openc ...
- opencv学习—简单方法用于斑马线检测(Python)
opencv学习-简单方法用于斑马线检测(Python) 目录 opencv学习-简单方法用于斑马线检测(Python) 1.读取原图像并将图像灰度化 2.通过高斯滤波去除噪声信息 3.阈值分割 4. ...
- 别魔改网络了,Google研究员:模型精度不高,是因为你的Resize方法不够好!
点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 作者丨小马 编辑丨极市平台 导读 尽管近年来卷积神经网络很大地促进了计算机视觉的发展,但一个重要方面很 ...
- python连接opencv库_python环境下安装opencv库的方法
注意:安装opencv之前需要先安装numpy,matplotlib等 一.安装方法 方法一.在线安装 1.先安装opencv-python pip install opencv-python --u ...
- 别魔改网络了,Google研究员:模型精度不高,是因为你的Resize方法不够好
作者丨小马 编辑丨极市平台 本文原创首发于极市平台公众号,转载请获得授权并标明出处. [写在前面] 尽管近年来卷积神经网络很大地促进了计算机视觉的发展,但一个重要方面很少被关注:图像大小对被训练的任务 ...
- OpenCV使用Shi-Tomasi方法检测拐角的实例(附完整代码)
OpenCV使用Shi-Tomasi方法检测拐角的实例 OpenCV使用Shi-Tomasi方法检测拐角的实例 OpenCV使用Shi-Tomasi方法检测拐角的实例 #include "o ...
- OpenCV使用Harris-Stephens方法检测角点的实例(附完整代码)
OpenCV使用Harris-Stephens方法检测角点的实例 OpenCV使用Harris-Stephens方法检测角点的实例 OpenCV使用Harris-Stephens方法检测角点的实例 # ...
最新文章
- Delphi下利用WinIo模拟鼠标键盘详解
- OpenGL 镜面反射 IBL
- 如何在线创建索引或者重构索引
- cudnn.deterministic = True 固定随机种子
- 不用也要知道的几种算法(PHP版本)
- 亲测可用——PostgresSQL安装教程
- 卸载 趋势科技防毒墙网络版
- JAVA——斐波那契数列(递归)
- 网吧游戏服务器制作教程,网吧服务器系统环境部署
- 路由器和交换机的基本配置
- JavaScript重写alert方法
- C# winform 快速导入excel 到datagridview
- 一文了解:微服务及其演进史
- 用计算机求锐角三角形的度数,三角函数超入门(2)锐角三角形的三角比
- megaface 数据集组成,介绍,Identification/Verification逻辑
- 求测此项目成败与否,财运如何?
- 终端软件测试风险,终端的性能测试分析
- 【笔记】文献阅读[YOLOV3]-An Incremental Improvement
- 气相色谱仪的原理及其组成介绍
- Low Power之CPF/UPF
热门文章
- java中简单的if语句_java中if语句的写法
- 多元样条函数及其应用_B样条算法(B-spline)
- 百度统计 java 实现思路_211本+985硕+计算机专业投面百度,坐等一周迎来三面,已拿offer...
- python 计算s= 12+ 22+ 32 +... + (10*n+2)
- LeetCode Contains Duplicate III
- 临死之前我要写一本《中国哲学史——以自然主义和人道主义的矛盾为视角》...
- 分子机制研究的五个层次,你的研究在哪个层次--转载
- jumpserver(0.3.2版本)开源跳板机系统部署
- js判断设备、浏览器类型
- 【转】Linux下gcc编译生成动态链接库*.so文件并调用它