「java灰度图像」java 灰度图
今天给各位分享java灰度图像的知识,其中也会对java 灰度图进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
本文目录一览:
- 1、java 中如何获得灰度图像的像素值,getRGB和getRaster有什么区别?
- 2、java 8位灰度图的灰度值怎么获取
- 3、java 8位灰度图的灰度值怎么获取,用ImageIO获得的怎么和matlab获得的不一样,希望高手能指教一下!
java 中如何获得灰度图像的像素值,getRGB和getRaster有什么区别?
关于图像像素值,我想要先讲一下Java中如何组织一个图像对象BufferedImage的,
一个BufferedImage的像素数据储存在Raster中,ColorModel里面储存颜色空间,类型等
信息,当前Java只支持一下三种图像格式- JPG,PNG,GIF,如何向让Java支持其它格式,首
先要 完成Java中的图像读写接口,然后打成jar,加上启动参数- Xbootclasspath/p
newimageformatIO.jar即可。
取得BufferedImage的代码如下:
File file = new File("D:\\test\\blue_flower.jpg");
BufferedImage image = ImageIO.read(file);
取得像素使用getRGB,代码如下:
int type= image.getType();
if ( type ==BufferedImage.TYPE_INT_ARGB || type == BufferedImage.TYPE_INT_RGB )
return (int [])image.getRaster().getDataElements(x, y, width, height, pixels );
else
return image.getRGB( x, y, width, height, pixels, 0, width );
写入像素,才可能用到getRaster,在type为ARGB 或RGB时,必须使用getRaster().setDataElements方式设置,其他格式直接setRGB,代码如下:
int type= image.getType();
if ( type ==BufferedImage.TYPE_INT_ARGB || type == BufferedImage.TYPE_INT_RGB )
image.getRaster().setDataElements(x, y, width, height, pixels );
else
image.setRGB(x, y, width, height, pixels, 0, width );
java 8位灰度图的灰度值怎么获取
public int filterRGB(int x, int y, int rgb) {
int a = rgb 0xff000000;//将最高位(24-31)的信息(alpha通道)存储到a变量
int r = (rgb 16) 0xff;//取出次高位(16-23)红色分量的信息
int g = (rgb 8) 0xff;//取出中位(8-15)绿色分量的信息
int b = rgb 0xff;//取出低位(0-7)蓝色分量的信息
rgb = (r * 77 + g * 151 + b * 28) 8; // NTSC luma,算出灰度值
return a | (rgb 16) | (rgb 8) | rgb;//将灰度值送入各个颜色分量
}
java 8位灰度图的灰度值怎么获取,用ImageIO获得的怎么和matlab获得的不一样,希望高手能指教一下!
1.调用matlab的图像读取函数imread读图片,把图片放在work文件夹下
I = imread('样品.jpg');
2.变为灰度图
G = rgb2gray(I);
3.双击workspace中的G项,在弹出的array edit中就看到了灰度矩阵
关于java灰度图像和java 灰度图的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。
发布于:2022-11-23,除非注明,否则均为
原创文章,转载请注明出处。