java中值滤波_中值滤波 java实现
中值滤波器原理
如果不在边缘区域,图像的数据是平缓的,没有太大的差值。因此,一个噪声点的值要么过大,要么过小。比如下图,左图是没有处理的原图,250在该区域由为突出,通过对3*3的9个数据进行排序,将中间值150重新填入,即滤波完成,原本的噪声点被去掉,该区域恢复平缓。同理,在边缘区域中,对于边界来说,高频不会影响,而过低数值将会突出,中值的选择将不会受到影响,除非3*3的整块区域都被污染,这时我们可以考虑更大的核来处理。
java 实现
/**
*
Title: medfilt2
*
Description:中值滤波
* @param imagesPos
* @param tmp 模板矩阵 2*2
* @return
*/
public static Matrix medfilt2(Matrix imagesPos, Matrix tmp) {
/**imagesPos 计算矩阵外围追加数值为0外围,以防矩阵下表越界*/
Matrix appendPos=DenseMatrix.Factory.emptyMatrix();
appendPos=appendPos.appendVertically(Ret.NEW, imagesPos);
Matrix v= DenseMatrix.Factory.zeros(1,imagesPos.getColumnCount());
appendPos=appendPos.appendVertically(Ret.NEW, v);
Matrix h= DenseMatrix.Factory.zeros(imagesPos.getRowCount()+1,1);
appendPos=appendPos.appendHorizontally(Ret.NEW, h);
Matrix matRt= DenseMatrix.Factory.zeros(imagesPos.getRowCount(),imagesPos.getColumnCount());
for(int i=0;i
Matrix matTmp= DenseMatrix.Factory.zeros(tmp.getColumnCount(), tmp.getColumnCount());
for(int j=0;j
/**求和*/
double [] d= {appendPos.getAsDouble(i,j),appendPos.getAsDouble(i,j+1),
appendPos.getAsDouble(i+1,j),appendPos.getAsDouble(i+1,j+1)};
Arrays.sort(d);
/**依据模板矩阵2*2 计算中值*/
double dbMid=(d[1]+d[2])/2;
matRt.setAsDouble(dbMid, i,j);
}
}
return matRt;
}
java中值滤波_中值滤波 java实现相关推荐
- java list sublist方法_(转)Java 中 List.subList() 方法的使用陷阱
原文:http://blog.csdn.net/cleverGump/article/details/51105235 前言 本文原先发表在我的 iteye博客: http://clevergump. ...
- java byte 判断相等_你真的了解Java中quot;==quot;和equals()的区别?
部分面试资料链接:https://pan.baidu.com/s/1qDb2YoCopCHoQXH15jiLhA 密码:jsam 想获得全部面试必看资料,关注公众号,大家可以在公众号后台回复" ...
- java json 修改字段_我们如何使用Java中的Jackson来更改JSON中的字段名称?
杰克逊注释@JsonProperty上使用期间的属性或方法的序列或反串行化的JSON.它带有一个可选的' name '参数,当属性名称与JSON中的' key '名称不同时,该参数很有用.默认情况下, ...
- 中软国际java开发面试题_中软国际java面试题及参考答案
面试题是中软国际java个人求职者在面试过程中的敲门砖,以下是小编为大家收集到的,希望对大家有帮助! :填空题 1Java语言具有许多优点和特点,下列选项中,哪个反映了Java程序并行机制的特点? B ...
- java包装和引用_回顾值传递和引用传递关于Java是值传递还是引用传递,网上有不一样的说法。1、基本类型或基本类型的包装类以及String是值传递,引用类型是引用传递。2...
回顾值传递和引用传递 关于Java是值传递还是引用传递,网上有不一样的说法. 1.基本类型或基本类型的包装类以及String是值传递,引用类型是引用传递. 2.Java中只有值传递. 关于这个问题应该 ...
- java中char类型_【考点】JAVA中的char类型
写在前面: 本周,在我们同学的刷题群里,一位同学上传了一道关于char的题,引起的不少同学的热议.热议的同时,我们也发现近乎一半的同学对char的基础知识一知半解,今天我们给大家一个浅显易懂的解释,赶 ...
- java 数字 下划线_为什么要在Java SE 7的数字中使用下划线-在数字文字中使用下划线...
java 数字 下划线 JDK 1.7发行版引入了几个有用的功能,尽管其中大多数都是语法糖,但使用该功能可以大大提高可读性和代码质量. 这样的功能之一是在数字文字中引入下划线 . 从Java 7开始, ...
- java菱形乱码 编码_【分享】Java开发过程中中文乱码问题总结
一.文件乱码处理 1.文件默认编码:默认使用项目的默认编码 右击文件->Properties->Resource->Text file encoding 2.JSP文件编码:由于JS ...
- java读取csv文件_使用扫描仪读取Java中的CSV文件
java读取csv文件 We can use Java Scanner Class to read CSV File in java. 我们可以使用Java扫描程序类在Java中读取CSV文件. 读取 ...
最新文章
- 怎么样才能快速的把淘宝店铺推广出去
- 限制HTTP数据包发送Referer
- aspx页面事件执行顺序
- 日期setHours()方法以及JavaScript中的示例
- Java中的堆和栈的区别
- 高质量代码才能最快投入生产
- 【JAVA】接口中的default和static方法
- JavaScript的简单复习
- 一款保险系统架构设计图
- php md5校验工具下载,md5校验工具下载_md5校验工具下载「最新|免费」-太平洋下载中心...
- 【vuejs】有关UI框架“ydui”中的tabbar底部导航的应用以及tabbar切换激活状态的现实
- 高并发下的秒杀系统设计
- epson LQ 600KIIH 针式打印机走纸问题
- 秩和检验的概念及python实现
- mysql中dint,请教一下Dint和Real型变量在使用过程中出现的问题
- 线上编程学院codecademy
- 正则表达式测试工具使用说明
- android 框架搭建养成的良好习惯(一)
- 购买服务器不显示d盘,购买云服务器后d盘
- codeforces 545 Round #303 (Div. 2) E Paths and Trees