gpt4 book ai didi

java - ImageJ API : Getting RGB values from image

转载 作者:行者123 更新时间:2023-12-01 15:16:49 25 4
gpt4 key购买 nike

我正在尝试从 ImagePlus 对象获取 RGB 值。当我尝试执行此操作时,出现异常错误:

import ij.IJ;
import ij.ImagePlus;
import ij.plugin.filter.PlugInFilter;
import ij.process.ColorProcessor;
import ij.process.ImageProcessor;
import java.awt.image.IndexColorModel;

public class ImageHelper implements PlugInFilter {

public int setup(String arg, ImagePlus img) {
return DOES_8G + NO_CHANGES;
}

public void run(ImageProcessor ip) {

final int r = 0;
final int g = 1;
final int b = 2;

int w = ip.getWidth();
int h = ip.getHeight();

ImagePlus ips = new ImagePlus("C:\\Lena.jpg");
int width = ips.getWidth();
int height = ips.getHeight();
System.out.println("width of image: " + width + " pixels");
System.out.println("height of image: " + height + " pixels");

// retrieve the lookup tables (maps) for R,G,B
IndexColorModel icm = (IndexColorModel) ip.getColorModel();

int mapSize = icm.getMapSize();
byte[] Rmap = new byte[mapSize];
icm.getReds(Rmap);
byte[] Gmap = new byte[mapSize];
icm.getGreens(Gmap);
byte[] Bmap = new byte[mapSize];
icm.getBlues(Bmap);

// create new 24-bit RGB image
ColorProcessor cp = new ColorProcessor(w, h);
int[] RGB = new int[3];
for (int v = 0; v < h; v++) {
for (int u = 0; u < w; u++) {
int idx = ip.getPixel(u, v);
RGB[r] = Rmap[idx];
RGB[g] = Gmap[idx];
RGB[b] = Bmap[idx];
cp.putPixel(u, v, RGB);
}
}
ImagePlus cwin = new ImagePlus("RGB Image", cp);
cwin.show();
}
}

异常来自这一行:

 IndexColorModel icm = (IndexColorModel) ip.getColorModel();

异常(exception):

Exception in thread "main" java.lang.ClassCastException: java.awt.image.DirectColorModel cannot be cast to java.awt.image.IndexColorModel

...有什么想法吗? ^_^

最佳答案

发生错误是因为 ip.getColorModel() 没有返回 IndexColorModel 对象,而是返回 ColorModel 对象。

要获取 IndexColorModel 对象,您应该使用以下代码:

IndexColorModel icm = ip.getDefaultColorModel();

根据ImageJ API,这应该给你一个IndexColorModel .

关于java - ImageJ API : Getting RGB values from image,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11495020/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com