如何用java编程实现提取一张图像每个像素点的灰度,并且按顺序输出为一串数字代码

如何用java编程实现提取一张图像每个像素点的灰度,并且按顺序输出为一串数字代码,第1张

用个HashMap存储信息到文件,可以的话那么代码如下:

import javautil

import javaio

public class Test1

没有发现好的办法,不过可以试一下调整eclipse jvm内存。

设置 eclipseini 加入下面选项

-vmargs

-Xms128M

-Xmx512M

-XX:PermSize=64M

-XX:MaxPermSize=128M

你可以根据具体情况修改那些数字。

当然还有其他办法调整eclipse jvm内存,也要根据你使用的eclipse 来调整。

首先,点动成线,也就是如果把一条线花短一点就可以类似一个点。其次,点的大小问题,就像windows自带的画图一样,点的大小是可以改变的,很灵活,用代码写很麻烦。在其次,Graphics虽说没有点,但是你画一个实心的圆就是点了

int rgbR;

int rgbG;

int rgbB;

int minx = 0;

int miny = 0;

try {

File file = new File("E:\\ddpng");

BufferedImage image = ImageIOread(file);

int width = imagegetWidth();//宽度

int height = imagegetHeight();//高度

for (int i = minx; i < width; i++) {

for (int j = miny; j < height; j++) {

int pixel = imagegetRGB(i, j); // 下面三行代码将一个数字转换为RGB数字

rgbR = (pixel & 0xff0000) >> 16;

rgbG = (pixel & 0xff00) >> 8;

rgbB = (pixel & 0xff);

Systemoutprintln("i=" + i + ",j=" + j + ":(" + rgbR + "," + rgbG + "," + rgbB + ")");

}

}

Systemoutprintln("宽度为:"+width+",高度为:"+height);

} catch (IOException e) {

Systemoutprintln("读取文件出错");

eprintStackTrace();

}

//没听懂你的需求,能更清楚一些吗?

我以前的一个程序使用BufferedImage读取图像像素点的RGB值,例子在下面。

你从例子中了解一下用一个整数表示RGB颜色的方法。然后用setRGB方法满足你的要求。

方法:

javaawtimageBufferedImage

public int getRGB(int x,int y)

返回默认 RGB 颜色模型 (TYPE_INT_ARGB) 和默认 sRGB 颜色空间中的整数像素。如果此默认模型与该图像的 ColorModel 不匹配,则发生颜色转换。在使用此方法所返回的数据中,每个颜色分量只有 8 位精度。

public void setRGB(int x, int y,int rgb)

将此 BufferedImage 中的像素设置为指定的 RGB 值。假定该像素使用默认 RGB 颜色模型、TYPE_INT_ARGB 和默认 sRGB 颜色空间。对于具有 IndexColorModel 的图像,则选择最接近的颜色的索引。

参数:

x - 要设置的像素的 X 坐标

y - 要设置的像素的 Y 坐标

rgb - RGB 值

例子:(获取RGB值)---了解一下用一个整数表示RGB颜色的方法

import javaawtimageBufferedImage;

import javaximageioImageIO;

import javaio;

public class Test{

public static void main(String args[]) {

int[] rgb = new int[3];

File file = new File("abmp");

BufferedImage bi=null;

try{

bi = ImageIOread(file);

}catch(Exception e){

eprintStackTrace();

}

int width=bigetWidth();

int height=bigetHeight();

int minx=bigetMinX();

int miny=bigetMinY();

Systemoutprintln("width="+width+",height="+height+"");

Systemoutprintln("minx="+minx+",miniy="+miny+"");

for(int i=minx;i<width;i++){

for(int j=miny;j<height;j++){

//Systemoutprint(bigetRGB(jw, ih));

int pixel=bigetRGB(i, j);

rgb[0] = (pixel & 0xff0000 ) >> 16 ;

rgb[1] = (pixel & 0xff00 ) >> 8 ;

rgb[2] = (pixel & 0xff );

Systemoutprintln("i="+i+",j="+j+":("+rgb[0]+","+rgb[1]+","+rgb[2]+")");

}

}

}

}

以上就是关于如何用java编程实现提取一张图像每个像素点的灰度,并且按顺序输出为一串数字代码全部的内容,包括:如何用java编程实现提取一张图像每个像素点的灰度,并且按顺序输出为一串数字代码、关于通过java获取图片像素点时出现 java.lang.OutOfMemoryError: Java heap space 问题、java 怎么获取图片圆型区域里的所有像素点等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9560292.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-29
下一篇 2023-04-29

发表评论

登录后才能评论

评论列表(0条)

保存