Opencv中提供了resize函数,可以把图像调整到相同大小

Java中resize函数的声明,内部调用的都是native方法

public static void resize(Mat src, Mat dst, Size dsize, double fx, double fy, int interpolation)
{ resize_0(src.nativeObj, dst.nativeObj, dsize.width, dsize.height, fx, fy, interpolation); return;
} //javadoc: resize(src, dst, dsize)
public static void resize(Mat src, Mat dst, Size dsize)
{ resize_1(src.nativeObj, dst.nativeObj, dsize.width, dsize.height); return;
}

解释下各个参数的意思:

src: 待改变大小的图像

dst: 输出的目标图像

dsize: 目标图像的尺寸

fx:width方向的缩放比例,如果它是0,那么它就会按照

(double)dsize.width/src.cols来计算

fy:height方向的缩放比例,如果它是0,那么它就会按照(double)dsize.height/src.rows来计算

interpolation:这个是指定插值的方式,图像缩放之后,肯定像素要进行重新计算的,就靠这个参数来指定重新计算像素的方式,有以下几种:

INTER_NEAREST - 最邻近插值

INTER_LINEAR - 双线性插值,如果最后一个参数你不指定,默认使用这种方法

INTER_AREA - 区域插值; 区域插值分为3种情况。图像放大时类似于线性插值,图像缩小时可以避免波纹出现。

INTER_CUBIC -基于4x4像素邻域的3次插值法

INTER_LANCZOS4 - 8x8像素邻域内的Lanczos插值

实战演示一下

/**
* 把图片归一化到相同的大小
*
* @param src
* Mat矩阵对象
* @return
*/
public static Mat resize(Mat src) {
//src = trimImg(src);//这个函数可以忽略,不产生影响
Mat dst = new Mat();
// 区域插值(INTER_AREA):图像放大时类似于线性插值,图像缩小时可以避免波纹出现。
Imgproc.resize(src, dst, dsize, 0, 0, Imgproc.INTER_AREA);
return dst;
}

效果:

本项目的所有代码地址:https://github.com/YLDarren/opencvHandleImg

Java基于opencv—归一化的更多相关文章

  1. Java基于opencv实现图像数字识别(二)—基本流程

    Java基于opencv实现图像数字识别(二)-基本流程 做一个项目之前呢,我们应该有一个总体把握,或者是进度条:来一步步的督促着我们来完成这个项目,在我们正式开始前呢,我们先讨论下流程. 我做的主要 ...

  2. Java基于opencv实现图像数字识别(五)—投影法分割字符

    Java基于opencv实现图像数字识别(五)-投影法分割字符 水平投影法 1.水平投影法就是先用一个数组统计出图像每行黑色像素点的个数(二值化的图像): 2.选出一个最优的阀值,根据比这个阀值大或小 ...

  3. Java基于opencv实现图像数字识别(四)—图像降噪

    Java基于opencv实现图像数字识别(四)-图像降噪 我们每一步的工作都是基于前一步的,我们先把我们前面的几个函数封装成一个工具类,以后我们所有的函数都基于这个工具类 这个工具类呢,就一个成员变量 ...

  4. Java基于opencv实现图像数字识别(三)—灰度化和二值化

    Java基于opencv实现图像数字识别(三)-灰度化和二值化 一.灰度化 灰度化:在RGB模型中,如果R=G=B时,则彩色表示灰度颜色,其中R=G=B的值叫灰度值:因此,灰度图像每个像素点只需一个字 ...

  5. Java基于opencv实现图像数字识别(一)

    Java基于opencv实现图像数字识别(一) 最近分到了一个任务,要做数字识别,我分配到的任务是把数字一个个的分开:当时一脸懵逼,直接百度java如何分割图片中的数字,然后就百度到了用Buffere ...

  6. Java基于OpenCV实现走迷宫(图片+路线展示)

    Java基于OpenCV实现走迷宫(图片+路线展示) 由于疫情,待在家中,太过无聊.同学发了我张迷宫图片,让我走迷宫来缓解暴躁,于是乎就码了一个程序出来.特此记录. 原图: 这张图,由于不是非常清晰, ...

  7. Java基于opencv—矫正图像

    更多的时候,我们得到的图像不可能是正的,多少都会有一定的倾斜,就比如下面的 我们要做的就是把它们变成下面这样的 我们采用的是寻找轮廓的思路,来矫正图片:只要有明显的轮廓都可以采用这种思路 具体思路: ...

  8. java基于OpenCV的人脸识别

    基于Java简单的人脸和人眼识别程序 使用这个程序之前必须先安装配置OpenCV详细教程见:https://www.cnblogs.com/prodigal-son/p/12768948.html 注 ...

  9. Java基于opencv—透视变换矫正图像

    很多时候我们拍摄的照片都会产生一点畸变的,就像下面的这张图 虽然不是很明显,但还是有一点畸变的,而我们要做的就是把它变成下面的这张图 效果看起来并不是很好,主要是四个顶点找的不准确,会有一些偏差,而且 ...

随机推荐

  1. nginx 实现所有的子域名301跳转到另外一个域名的对应子域名

    server { listen ; server_name *.olddomain.com; if ( $http_host ~* "^(.*?)\.olddomain\.com$" ...

  2. linux-centos系统下安装python3.5.4步骤

    查看当前python版本:python -V 查看Python可执行文件位置:which python [root@localhost bin]# which python/usr/bin/pytho ...

  3. javeEE第二周

    XML(可扩展标记语言) 1.什么是xml? 扩展标记语言 XML(Extensible Markup Language) 的规范定义:用于标记电子文件使其具有结构性的标记语言,可以用来标记数据.定义 ...

  4. 【Java集合系列五】HashMap解析

    2017-07-31 19:36:00 一.简介 1.HashMap作用及使用场景 HashMap利用数组+单向链表的方式,实现了key-value型数据的存储功能.HashMap的size永远是2^ ...

  5. C语言采用socket实现http post方式上传json数据

    1.按照HTTP协议发送请求: http POST 报文格式 http 报文是面向文本的. 报文分为:请求报文和响应报文 请求报文由:请求行,请求头部,空行和请求数据四个部分组成. <1.请求行 ...

  6. HFun.快速开发平台(五)=》自定义系统数据选择

    本篇介绍HFun.快速开发平台的另一项系统常用功能:系统数据或参数选择,主要应用在表单录入中信息的选择,如类别,编号等.先贴出本系统实现的页面效果: 如上图所示,系统中将参数的选择统一展现为该方式,开 ...

  7. spring注解驱动开发

    1.全图: 一.IOC容器部分 1.第一个初始化实例: @Configuration @ComponentScans @Bean("person") 注意: @repeatable ...

  8. 第一周嵌入式程序设计(linux环境下)的学习总结

    2014025641 <嵌入式程序设计>第1周学习总结 本周学习内容 首先我们先复习下之前学习过的内容,什么是linux? Linux 就是一个操作系统,就像你多少已经了解的 Window ...

  9. jsp页面传中文到后台乱码怎么办?

    一般从前台传值到后腰如果传的值是中文的话,又不用post传值方式,到后台显示会显示成乱码的形式.所以以下方法亲测有效防止乱码. 前台jsp页面: var taskTitle = $('#taskTit ...

  10. 基于java代码的springmvc配置

    在我的印象中,开发一个web项目首选当然是springmvc,而配置springmvc无非就是web.xml里配置其核心控制器DispatcherServlet.然后把所有的请求都交给它处理,再配个视 ...