java图像处理---特殊颜色二值化处理
来源:互联网 发布:苹果手机淘宝p图软件 编辑:程序博客网 时间:2024/06/14 08:45
特殊颜色二值化处理(此处以RGB为例)
(1)输入一张图片(jpg已经测试)(2)创建一个图片的缓存区 grayImage(3)对输入图片各个像素进行处理, 逻辑: 当red > testnum || green > testnum || blue > testnum red + green < testnum*1.5 && red + blue < testnum*1.5 && green + blue < testnum*1.5 && red + green + blue < testnum*1.5 改变此逻辑即可实现对特殊 RGB 的二值化处理(4)输出图片输入: RGB 彩色图片输出: 特殊色彩区域为白色,其他区域为黑色
源码如下:
功能函数:
import java.awt.Graphics;import java.awt.image.BufferedImage;import java.io.File;import java.io.IOException;import javax.imageio.ImageIO;/* * 灰度化处理函数,,特殊的灰度化处理,,使用了加权平均数方法,使得处理后的图像更加真实清晰 */public class specialColor { private static int colorToRGB(int alpha, int red, int green, int blue) { int testnum = 0xbb; if (red > testnum || green > testnum || blue > testnum) if(red + green < testnum*1.5 && red + blue < testnum*1.5 && green + blue < testnum*1.5 && red + green + blue < testnum*1.5) return 0xffffffff; else return 0xff000000; else return 0xff000000; // return 0xff000000; //黑色 //else return 0xffffffff; //白色}public void processPicture(Graphics graphics) throws IOException { BufferedImage bufferedImage = ImageIO.read(new File("specialColor.jpg")); BufferedImage grayImage = new BufferedImage(bufferedImage.getWidth(), bufferedImage.getHeight(), bufferedImage.getType()); for (int i = 0; i < bufferedImage.getWidth(); i++) { for (int j = 0; j < bufferedImage.getHeight(); j++) { final int color = bufferedImage.getRGB(i, j); final int r = (color >> 16) & 0xff; final int g = (color >> 8) & 0xff; final int b = color & 0xff; int newPixel = colorToRGB(255, r, g, b); grayImage.setRGB(i, j, newPixel); //System.out.print(r+" "+g+" "+b);return; } } graphics.drawImage(bufferedImage, 0, 0, 380, 400,null); graphics.drawImage(grayImage,400,0, 380,400,null);}}
测试函数:
public static void main(String args[]){ //创建窗口 JFrame mFrame = new JFrame(); mFrame.setSize(800, 500); mFrame.setVisible(true); mFrame.add(new gray()); } //重写paint 方法 画图 public void paint(Graphics g){ try { new specialColor().processPicture(g); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } }
0 0
- java图像处理---特殊颜色二值化处理
- 图像处理基础理论-颜色
- 【图像处理】颜色空间
- 【图像处理】颜色距离
- 图像处理--颜色变换
- matlab图像处理特殊命令
- java特殊字符处理
- Java特殊字符串处理
- 图像处理中的颜色空间
- 图像颜色处理(ColorMatrix)
- JAVA简单二值化图像处理
- Java实现二值化处理图像
- Delphi图像处理 -- 设置图像关键颜色
- 图像处理之特殊灰度算法技巧
- 图像处理------特殊灰度算法技巧
- 图像处理之特殊灰度算法技巧
- java图像处理
- java 高级图像处理
- morphogenesis —— 形态发生
- 【腾讯Bugly干货分享】一步一步实现Android的MVP框架
- NCReport制作报表
- STL学习之路(一) deque
- CopyOnWriteArrayList
- java图像处理---特殊颜色二值化处理
- C#基础--之数据类型
- 遍历删除List中的元素
- 关于Java与前端jQuery的图片传输功能小结
- ExtJs6 store发送数据添加参数
- Java数据类型和运算符
- 【腾讯Bugly干货分享】iOS黑客技术大揭秘
- fatal:unable to access '...github.com/.../.git':Failed to connect to github.com port 443: Timed out
- 【POJ 3620】Avoid The Lakes