惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

C
CERT Recently Published Vulnerability Notes
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
WordPress大学
WordPress大学
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
V
Visual Studio Blog
Stack Overflow Blog
Stack Overflow Blog
aimingoo的专栏
aimingoo的专栏
C
Check Point Blog
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
T
Tor Project blog
P
Proofpoint News Feed
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
Latest news
Latest news
L
LINUX DO - 热门话题
罗磊的独立博客
T
Tenable Blog
The Hacker News
The Hacker News
美团技术团队
N
Netflix TechBlog - Medium
V
Vulnerabilities – Threatpost
阮一峰的网络日志
阮一峰的网络日志
Last Week in AI
Last Week in AI
博客园 - 司徒正美
Jina AI
Jina AI
Cyberwarzone
Cyberwarzone
云风的 BLOG
云风的 BLOG
S
Secure Thoughts
Cloudbric
Cloudbric
S
Security @ Cisco Blogs
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
Microsoft Security Blog
Microsoft Security Blog
Spread Privacy
Spread Privacy
U
Unit 42
雷峰网
雷峰网
C
CXSECURITY Database RSS Feed - CXSecurity.com
Webroot Blog
Webroot Blog
爱范儿
爱范儿
博客园 - 【当耐特】
Know Your Adversary
Know Your Adversary
P
Privacy International News Feed
P
Palo Alto Networks Blog
Google Online Security Blog
Google Online Security Blog
The Last Watchdog
The Last Watchdog
博客园 - 聂微东
Help Net Security
Help Net Security
Hacker News: Ask HN
Hacker News: Ask HN
F
Full Disclosure
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
S
Security Affairs
Project Zero
Project Zero

博客园 - 空空色色

转一篇,CentOS后台服务配置 linux kernel 2.6.36 编译升级 linux的UPNP支持(转) UPNP协议细节(转) UPnp协议 from wikipedia 考察智力zz JScollPane以及JPanel相关 bmp文件格式 java中对图象文件的处理(读写以及转换) Java媒体框架(JMF),个人很欣赏.... 常用颜色对照表 YUV/YIQ色彩空间的转换 关于Swing实现透明窗体的。我也很喜欢,收藏! java中的数据库程序应用 A*以及迭代加深的A*算法(IDA*) 我的兄弟们之袋鼠篇 深度优先状态搜索法 我的兄弟们之温J篇 经典搜索算实现之一,广度优先.
java中的图象处理技术基础
空空色色 · 2006-11-02 · via 博客园 - 空空色色

      一个图象,可以表示成一个多维数组.(这个就不细说原因了.嘿嘿)但是不同的图象格式存储的格式是不一样的,比如,灰度图象可以简单的表示成二维的.每个像素值的范围是(0-255),其中0表示黑,255表示白.但是,彩色的图象可以表示成三维的数组.其中的一个维度用来表示不同的颜色分量.比如.jpg格式的图象每个像素值都有三个分量,R,G,B(红绿蓝)这三种颜色按分量的不同可以组合成其他的任意颜色.
      不废话了,下面要说的是java中对图象的处理.java用一个2维的int型数组来表示所有图象的像素值,为什么可以这样呢?因为int型是4个字节,低位三字节用来表示三个颜色分量,而最高位字节则用来表示该像素是否透明.(具体可以查询相公资料)对于灰度图,后三字节取相同的值,每个字节的值都表示像素的亮度.
      基本上所有的图象处理都和像素是紧密联系的.下面就通过一个例子来说明处理的过程.
//灰度变换示例.
//读图象
 public Image readImage(String str)
 {
  Image image = Toolkit.getDefaultToolkit().getImage(str);
  MediaTracker tracker = new MediaTracker(this);
  tracker.addImage(image, 0);
  try { tracker.waitForID(0); }
  catch (InterruptedException exception) {}
  try
  {
  image = ImageIO.read(new File(str));
  }
  catch (IOException exception)
  {
  exception.printStackTrace();
  }
  return image;
 }
//取像素值
public Image changeToGray(Image src)
{
 int srcWidth=src.getWidth(this);//图象宽
 int srcHeight=src.getHeight(this);//图象高度
 int pixelsSource[]=new int[srcWidth*srcHeight];
 int pixelsDestnation[]=new int[srcWidth*srcHeight];//两个内存缓冲数组 

 PixelGrabber pixelGrabber=new PixelGrabber(src,0,0,srcWidth,srcHeight,pixelsSource,0,srcWidth);//与图象关联
 try{
  pixelGrabber.grabPixels();//取像素
 }catch(InterruptedException e){}

 for(int i=0;i<srcHeight;i++)//对每个像素进行转化
 {
  for(int j=0;j<srcWidth;j++)
  {
   pixelsDestnation[i*srcWidth+j]=toGray(pixelsSource[i*srcWidth+j]);
  }
 }
//从数组中还原出图象 
MemoryImageSource memoryImage=new MemoryImageSource(srcWidth,srcHeight,pixelsDestnation,0,srcWidth);
 return createImage(memoryImage);
}
//灰度变换公式
public int toGray(int i)
{
 int r,g,b,gary;
 r=g=b=i;
 r=r&(0xff);
 g=(g&(0xff00))>>8);
 b=(g&(0xff0000))>>16;
 gray=(int)r*0.33+g*0.56+b*0.11;
 return gray;
}