Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/400.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 正在创建空白图像 导入ij.*; 导入ij.gui.GenericDialog; 导入ij.gui.NewImage; 导入ij.plugin.FolderOpener; 导入ij.plugin.filter.PlugInFilter; 导入静态ij.pl_Java_Imagej - Fatal编程技术网

Java 正在创建空白图像 导入ij.*; 导入ij.gui.GenericDialog; 导入ij.gui.NewImage; 导入ij.plugin.FolderOpener; 导入ij.plugin.filter.PlugInFilter; 导入静态ij.pl

Java 正在创建空白图像 导入ij.*; 导入ij.gui.GenericDialog; 导入ij.gui.NewImage; 导入ij.plugin.FolderOpener; 导入ij.plugin.filter.PlugInFilter; 导入静态ij.pl,java,imagej,Java,Imagej,正在创建空白图像 导入ij.*; 导入ij.gui.GenericDialog; 导入ij.gui.NewImage; 导入ij.plugin.FolderOpener; 导入ij.plugin.filter.PlugInFilter; 导入静态ij.plugin.filter.PlugInFilter.DOES_8G; 需要导入静态ij.plugin.filter.PlugInFilter.STACK_; 导入ij.过程。*; 导入java.awt.image.buffereImage; 导入

正在创建空白图像
导入ij.*;
导入ij.gui.GenericDialog;
导入ij.gui.NewImage;
导入ij.plugin.FolderOpener;
导入ij.plugin.filter.PlugInFilter;
导入静态ij.plugin.filter.PlugInFilter.DOES_8G;
需要导入静态ij.plugin.filter.PlugInFilter.STACK_;
导入ij.过程。*;
导入java.awt.image.buffereImage;
导入java.awt.image.WritableRaster;
导入java.io.File;
导入java.io.IOException;
导入javax.imageio.imageio;
*计算位于同一位置的像素的平均值
*在堆栈的每个切片中定位,并将显示平均值的切片添加到堆栈的末尾。
公共类侦察器2d实现插件填充器{
受保护的ImagePlus imp;
int Bin_编号、Bin_大小;
int[]平均值;
公共整数设置(字符串arg、ImagePlus imp){
this.imp=imp;
返回是否需要\u 8G+堆栈\u;
}
公共无效运行(图像处理器ip){
GenericDialog gd0=新建GenericDialog(“参数”);
gd0.addNumericField(“仓单编号”,仓单编号,0);
gd0.addNumericField(“Bin_Size”,Bin_Size,0);
gd0.showDialog();
if(gd0.wascanced())返回;
Bin_number=(int)gd0.getNextNumber();
Bin_size=(int)gd0.getNextNumber();
ImageStack stack=imp.getStack();
整数[]和;
int[][]侦察=null;
//获取一个切片的像素
字节[]像素;
int-dimension=ip.getWidth()*ip.getHeight()*Bin\u编号;
总和=新整数[维度];
int width=ip.getWidth();
int height=stack.getSize();
int l=0;

对于(int i=1;i请选择您要创建哪种图像类型的语言…BMP-1,2,4,8,16,24,31,64位…并指定语言请…抱歉,8位灰度,ImageJ工具上的Java。实际上我希望它在.tiff中,但它不起作用,因此现在我正在以.jpg格式创建。
import ij.*;
import ij.gui.GenericDialog;
import ij.gui.NewImage;
import ij.plugin.FolderOpener;
import ij.plugin.filter.PlugInFilter;
import static ij.plugin.filter.PlugInFilter.DOES_8G;
import static ij.plugin.filter.PlugInFilter.STACK_REQUIRED;
import ij.process.*;
import java.awt.image.BufferedImage;
import java.awt.image.WritableRaster;
import java.io.File;
import java.io.IOException;
import javax.imageio.ImageIO;

 * Calculates the average values of pixels located at the same
 * position in each slice of the stack and adds a slice showing the average values to the end of the stack.

public class Recon_2d implements PlugInFilter {
    protected ImagePlus imp;
    int Bin_number, Bin_size;
    int[] average ;
    public int setup(String arg, ImagePlus imp) {
        this.imp = imp;
        return DOES_8G+STACK_REQUIRED;
    }
    public void run(ImageProcessor ip) {
        GenericDialog gd0 = new GenericDialog("Parameters");
        gd0.addNumericField("Bin_Number", Bin_number,0);
        gd0.addNumericField("Bin_Size", Bin_size,0);
        gd0.showDialog();
        if (gd0.wasCanceled())  return ;
        Bin_number = (int)gd0.getNextNumber();
        Bin_size = (int)gd0.getNextNumber();
        ImageStack stack = imp.getStack();
        int[] sum;
        int[] [] recon = null;
// takes pixels of one slice
        byte[] pixels;
        int dimension = ip.getWidth()*ip.getHeight()*Bin_number;
        sum = new int[dimension];
        int width=ip.getWidth();
        int height=stack.getSize();
        int l=0;
        for (int i=1;i<=stack.getSize();i++) {
            pixels = (byte[]) stack.getPixels(i);
// add the value of each pixel and the corresponding position of the sum array
            for (int j=0;j<stack.getWidth();j++) {
                for (int k=0;k<Bin_number;k++){
                    for( l=0;l<Bin_size;l++){
                        sum[l]+=0xff & pixels[l];
                    }
                }
            }
        }
        average  =new int[dimension];
// divide each entry by the number of pixels in each bin
        for ( l=0;l<dimension;l++) {
            average[l] = (byte) ((sum[l]/Bin_size) & 0xff);
        }
        try{ 
            int [][] PixelArray=new int[width][height];
            BufferedImage bufferImage2=new BufferedImage(width, height,BufferedImage.TYPE_BYTE_GRAY);
            for(int b=0;b<Bin_number;b++){
                for(int y=0;y<height;y++){
                    for(int x=0;x<width;x++){
                        int Pixel=PixelArray[x][y]<<16 | PixelArray[x][y] << 8 | PixelArray[x][y];
                        bufferImage2.setRGB(x, y, PixelArray[x][y]);
                    }
                }
                File outputfile = new File("D:\\Output\\new"+b+".jpg");
                ImageIO.write(bufferImage2, "jpg", outputfile);
            }
        }
        catch(Exception ee){
            ee.printStackTrace();
        }
    }
}