Java图像去噪怎么实现?

JavaScript016

Java图像去噪怎么实现?,第1张

流程不外乎是

读取图像文件;

扫描噪点;

去除噪点;

保存图像文件。

Java2D操作好像使用BufferedImage读取图像文件最方便,有一阵没弄这了,忘了。应该可以读取JPG,PNG,GIF图像。

识别噪点应该有专门的算法,我没研究过,百度一下应该能找到专门算法,然后写段代码就可以。我个人以为是独立一个像素与周围一定范围内的像素差异过大,就认为是噪点。可以有亮度,色相上的差别。BufferedImage可以读取每个像素的RGB,从而能识别色相的差别;还有个矩阵,用来由RGB计算亮度的,也就可以计算亮度差别了,这个网上都能找到。

输出也使用BufferedImage就可以。

关键是每个像素都要和周围像素比较,还要计算亮度,最少是三重循环了,如何提高效率是个大问题了。这个代码写好了也算一个高手了。

1、图像去噪也是图像复原

2、对象:狭义的图像复原主要针对受到的确定性(determinisitic)劣化、去噪针对的是非确定性的统计噪声:

例如古画受到岁月侵蚀属前者,古画生了虫子出现霉点属后者;

拍照片时手抖了属于前者,显影药水脏了使得出来的照片显示出很多的颗粒噪点,属后者.

3、模型和处理方法不同

狭义的图像复原需要找出劣化系统的函数(点扩展函数),然后做整体处理,如去卷积,非常复杂,而去噪一般只需要了解噪声的统计分布,点处理也能解决问题.

4、评价函数不同

狭义的图像复原的评价函数是相似度,去噪主要是信噪比.