均值滤波
来源:互联网 发布:java 插件开发 demo 编辑:程序博客网 时间:2024/05/16 17:20
均值滤波是典型的线性滤波算法,它是指在图像上对目标像素给一个模板,该模板包括了其周围的临近像素(以目标像素为中心的周围8个像素,构成一个滤波模板,即去掉目标像素本身),再用模板中的全体像素的平均值来代替原来像素值。
public void jMean_ActionPerformed(ActionEvent e) {
if(flag_load){
//
//BufferedImage.TYPE_INT_RGB : 表示一个图像,该图像具有整数像素的 8 位 RGB 颜色
BufferedImage grayImage = new BufferedImage(iw, ih,
BufferedImage.TYPE_INT_RGB);
ColorModel cm = ColorModel.getRGBdefault();
for(int i=1;i<ih-1;i++){
for(int j=1;j<iw-1;j++){
int red1 = cm.getRed(pixels[(i-1)*iw+j-1]);
int red2 = cm.getRed(pixels[(i-1)*iw+j]);
int red3 = cm.getRed(pixels[(i-1)*iw+j+1]);
int red4 = cm.getRed(pixels[i*iw+j-1]);
int red6 = cm.getRed(pixels[i*iw+j+1]);
int red7 = cm.getRed(pixels[(i+1)*iw+j-1]);
int red8 = cm.getRed(pixels[(i+1)*iw+j]);
int red9 = cm.getRed(pixels[(i+1)*iw+j+1]);
int meanRed = (red1+red2+red3+red4+red6+red7+red8+red9)/8;
int green1 = cm.getGreen(pixels[(i-1)*iw+j-1]);
int green2 = cm.getGreen(pixels[(i-1)*iw+j]);
int green3 = cm.getGreen(pixels[(i-1)*iw+j+1]);
int green4 = cm.getGreen(pixels[i*iw+j-1]);
int green6 = cm.getGreen(pixels[i*iw+j+1]);
int green7 = cm.getGreen(pixels[(i+1)*iw+j-1]);
int green8 = cm.getGreen(pixels[(i+1)*iw+j]);
int green9 = cm.getGreen(pixels[(i+1)*iw+j+1]);
int meanGreen = (green1+green2+green3+green4+green6+green7+green8+green9)/8;
int blue1 = cm.getBlue(pixels[(i-1)*iw+j-1]);
int blue2 = cm.getBlue(pixels[(i-1)*iw+j]);
int blue3 = cm.getBlue(pixels[(i-1)*iw+j+1]);
int blue4 = cm.getBlue(pixels[i*iw+j-1]);
int blue6 = cm.getBlue(pixels[i*iw+j+1]);
int blue7 = cm.getBlue(pixels[(i+1)*iw+j-1]);
int blue8 = cm.getBlue(pixels[(i+1)*iw+j]);
int blue9 = cm.getBlue(pixels[(i+1)*iw+j+1]);
int meanBlue = (blue1+blue2+blue3+blue4+blue6+blue7+blue8+blue9)/8;
// 就是把四个八位二进制数
//拼接成一个二进制数(32位)
// 255<<24:11111111变成111111110000...(24个0)
int rgb = 255<<24|meanRed<<16|meanGreen<<8|meanBlue;
grayImage.setRGB(j, i, rgb);
}
}
tmp = grayImage;
repaint();
}else{
JOptionPane.showMessageDialog(null, "先点击“装载图像”,3Q!","提示:",
JOptionPane.WARNING_MESSAGE);
}
}
具体细节 看我写的灰度图
阅读全文
0 0
- 均值滤波
- 均值滤波
- 均值滤波
- 均值滤波
- 均值滤波
- 均值滤波
- 均值滤波&阈值均值滤波
- 均值滤波 中值滤波 对称均值滤波
- 中值滤波VS.均值滤波
- 均值滤波vs中值滤波
- 图像处理:均值滤波
- K近邻均值滤波
- 对称邻近均值滤波
- 快速均值滤波
- 中值和均值滤波
- 均值滤波快速算法
- 均值滤波函数
- 移动均值滤波
- HDU 2602 Bone Collector
- 1130. Infix Expression (25)
- 五子棋游戏的运行
- 存储
- tinker热修复
- 均值滤波
- 实现负债均衡的方式与负债均衡算法
- TRUNC函数的用法【转载】
- PAT 1042. 字符统计(20)
- Qt元对象系统(Meta-Object System)
- 第九周项目一——二叉树算法库
- FastJSON之解析json
- 数据结构+软考网络工程师(出现过)---中缀表达式转后缀表达式的问题
- 插件化实现基础