java - 提取哪个 channel - ImageJ

标签 java image-processing imagej

我有一张图像,我正在尝试根据图像的红色、蓝色或绿色程度来提取特定 channel 。

例如,如果我的图像主要是红色,我想提取红色 channel 。我已经有了可以为我提取 channel 的代码:

private ImageProcessor getRedChannel(ImageProcessor ip) {
    RGBStackSplitterSean splitter=new RGBStackSplitterSean();
    splitter.split(new ImagePlus("tempImage",ip));
    ImagePlus red=new ImagePlus("tempImage",splitter.red);
    return red.getProcessor();
}

如何确定哪个 channel 最强?

谢谢!

编辑:

我最终按照 @mmgp 提到的那样做了。总结每个 channel 的所有强度并选择最大的使用:

private int getSumPixels(ImageProcessor ip){
        int sum = 0;
        for(int i=0; i<ip.getWidth(); i++){
            for(int k=0; k<ip.getHeight(); k++){
                sum = sum + ip.getPixel(i, k);
            }
        }
        return sum;
}

最佳答案

将每个 channel 的所有强度相加,并选择总和最大的一个。

关于java - 提取哪个 channel - ImageJ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14551437/

相关文章:

Java 音频比较

image - 如何从图像中删除所有线条? (水平、垂直、对角线)

java - 搜索目录中的文件并根据公共(public)子字符串将它们配对

python - 图像配准 B 样条 opencv

java - 在 Intellij(Maven 项目)中从外部 jar (.jar) 的根导入类

java - 如何处理来自 JDesktopPane 的 JInternalFrame Close 操作?

Java 多线程 |寻找所有的可能性

java - 如何监听JavaFX节点中伪类的变化

c++ - OpenCV cv::cvtColor 删除 alpha channel ,如何保留 alpha 数据?

android - 如何使用 GPUimage 在 Android 中对同一张图像应用多个滤镜?