- 浏览: 32562 次
最新评论
-
探花郎:
最近在做数字图像处理的大作业,需要做出直方图的均衡化和规定化。 ...
直方图均衡化的java代码
文章列表
很久很久以前,有一群人,他们决定用8个 可以开合的晶体管来组合成不同的状态,以表示世界上的万物。他们认为8个开关状态作为原子单位很好,于是他们把这称为"字节"。
再后来,他们又做了一些可以处理这些字节 的机器,机器开动了,可以用字节来组合出更多的状态,状态开始变来变去。他们看到这样是好的,于是它们就这机器称为"计算机"。
开始计算机只在美国用。八位的字节一共可 以组合出256(2的8次方)种不同的状态。
他们把其中 的编号从0开始的32种状态分别规定了特殊的用途,一但终端设备或者打印机遇上这些约定好的字节时,就要做一些约定的动作。遇上 00x10, ...
.h与.cpp
在应用程序中大量应用的是以h和cpp为扩展名的文件, 以h为扩展名的文件称为头文件。以cpp为扩展名的文件称为实现文件, 一般说来h为扩展名的文件与cpp为扩展名的文件是一一对应配合使用的, 在h为扩展名的文件中包含的主要是类的定义, 而在cpp为扩展名的文件中包含的主要是类成员函数的实现代码。
.rc
在应用程序中经常要使用一些位图、菜单之类的资源, VC中以rc为扩展名的文件称为资源文件, 其中包含了应用程序中用到的所有的windows资源, 要指出的一点是rc文件可以直接在VC集成环境中以可视化的方法进行编辑和修改。
.ico,bmp
对于以ico,bmp等为扩展名 ...
首先,这三个东西有什么区别呢?VC和C++是相同的吗,有什么区别呢?我刚开始学C++的时候也有这样的问题,在这里我来替大家解释一下他们到底是什么。
Visual Studio,我们一般都简称为VS,VC全称是Visual C++ ...
今天学习《从新手到高手C++全部精华教程》,http://www.iteye.com/topic/1126275
“传值和传地址的区别是,传值由于是传递的原始变量的副本,因此不会改变原始变量的值,而传地址则可以改变原始变量的值。假如仅仅是传递变量的话,采用指针或引用这种传地址的方式的优势并不明显,但是如果传递的是较大的对象的话,那么传地址的优势是十分明显的。这时因为,在用传值的方式传递一个对象时,会像传变量一样建立一个该对象的拷贝,而从函数返回一个对象时,也要建立这个返回的对象的一个拷贝。但是若对象的数据很大时,这种内存的开销是相当可观的。然而,按值传递的开销远不如此,由于在传递对象的过程中 ...
今天学习《从新手到高手C++全部精华教程》,http://www.iteye.com/topic/1126275
利用指针返回多值
因为函数只能有一个返回值(void算作空返回值),但是一个函数的功能往往比较复杂,怎样将函数中其他重要的参数也 ...
今天学习《从新手到高手C++全部精华教程》,http://www.iteye.com/topic/1126275
知道了函数调用的三种参数传递方式:
第一种:传值
#include<iostream>
using namespace std;
void swap(int a, int b){
int c;
cout<<"swap交换前"<<"a:"<<a<<endl;
cout<<"swap交换前"<<&q ...
均值滤波和中值滤波的内容非常基础,均值滤波相当于低通滤波,有将图像模糊化的趋势,对椒盐噪声基本无能为力。中值滤波的优点是可以很好的过滤掉椒盐噪声,缺点是易造成图像的不连续性。在下面的代码中,中值滤波主要通过冒泡算法来实现。
含有椒盐噪声的lena彩色图像:
均值滤波的效果如下,可以看出,椒盐噪声被处理成了小的气泡,同时图像变模糊:
中值滤波的效果如下,可以看到,几乎完全去除了椒盐噪声。
package p01;
import java.awt.*;
import java.awt.event.*;
import java.awt.image.*;
import ja ...
自我感觉直方图均衡化作用并不是很大,有的时候甚至会适得其反。它的核心思想就是让图像暗的地方变亮,亮的地方变暗。问题是,如果图像原本的亮暗程度就非常符合人眼的观察结果,那么直方图均衡化之后的图像就变的很糟。所以该方法要依据图像数据的特点而定。先看一下效果比较好的案例:
彩色的lena图像:lena_color.jpg
将彩色lena变为灰度lena:
对灰度lena进行直方图均衡化,结果如下,可以看出,图像整体变亮,暗处的细节得到了突出:
但是对于某些图像,尤其是亮背景的图像,本来前景和背景有很好的区分,但是直方图均衡化之后,亮的背景变暗,图像灰度成平稳过渡状态,反而不利 ...
该程序主要实现水平方向上的灰度图像重采样。重采样通过3个for循环控制完成。原始lena图如下所示:
水平方向每8个点采集一个点的lena图像如下所示:
package p01;
import java.awt.*;
import java.awt.event.*;
import java.awt.image.*;
import java.io.File;
import java.io.IOException;
import javax.imageio.ImageIO;
import javax.swing.*;
public class chongcaiyan ...
/**
* 利用zip库压缩/解压文件夹
* 因为java的基本zip库是不支持中文文件名的。所以压缩后中文名的条目都变成了乱码,利用rar解压工具解压不了名字为乱码的压缩文件,但自己写的解压方法在windows下解压后编码正常显示中文,而其他系统下则不能正常还原;
* 可以用ant.jar包下的zip类来压缩文件夹,apache tools下的zip库是支持中文的。(ant.jar包下面可以下载)
第一种是没处理中文乱码的···
* @author 小苗
*/
第一种:
import java.io.File;
import java.io.FileInputSt ...
周六终于可以搞点自己的事情了...对于java图像处理来说,我还在门槛上徘徊,下面就将碰到的几个问题写下来:
1 在读入灰度图像时,inputImage = Toolkit.getDefaultToolkit().getImage("\\inputImage.jpg");无法读入灰度图像;
改为
File inputFile = new File("\\inputImage.jpg");
BufferedImage input = ImageIO.read(inputFile);
就可以读入了。
2 显示灰度图像时,有两种方法 ...