本文整理汇总了Java中javax.media.jai.KernelJAI类的典型用法代码示例。如果您正苦于以下问题:Java KernelJAI类的具体用法?Java KernelJAI怎么用?Java KernelJAI使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
KernelJAI类属于javax.media.jai包,在下文中一共展示了KernelJAI类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: computeEdgeDensityClutter
import javax.media.jai.KernelJAI; //导入依赖的package包/类
private double computeEdgeDensityClutter(PlanarImage image) {
// first compute the RenderedOp that computes both vertical and
// horizontal
// edge detection
KernelJAI sobelVertKernel = KernelJAI.GRADIENT_MASK_SOBEL_VERTICAL;
KernelJAI sobelHorizKernel = KernelJAI.GRADIENT_MASK_SOBEL_HORIZONTAL;
ParameterBlock pb = new ParameterBlock();
pb.addSource(image);
pb.add(sobelHorizKernel);
pb.add(sobelVertKernel);
RenderedOp renderedOp = JAI.create("gradientmagnitude", pb);
BufferedImage edgeImage = renderedOp.getAsBufferedImage();
// then compute a density value, i.e. the mean
int edgeTotal = 0;
for (int i = 0; i < edgeImage.getWidth(); i++)
for (int j = 0; j < edgeImage.getHeight(); j++)
edgeTotal += Math.abs(edgeImage.getRGB(i, j));
return Math.abs(edgeTotal / (edgeImage.getWidth() * edgeImage.getHeight()));
}
示例2: Convolve3x3OpImage
import javax.media.jai.KernelJAI; //导入依赖的package包/类
/**
* Creates a Convolve3x3OpImage given a ParameterBlock containing the image
* source and a pre-rotated convolution kernel. The image dimensions
* are derived
* from the source image. The tile grid layout, SampleModel, and
* ColorModel may optionally be specified by an ImageLayout
* object.
*
* @param source a RenderedImage.
* @param extender a BorderExtender, or null.
* @param layout an ImageLayout optionally containing the tile grid layout,
* SampleModel, and ColorModel, or null.
* @param kernel the pre-rotated convolution KernelJAI.
* @param cobbleSources a boolean indicating whether computeRect()
* expects contiguous sources.
*/
public Convolve3x3OpImage(RenderedImage source,
BorderExtender extender,
Map config,
ImageLayout layout,
KernelJAI kernel) {
super(source,
layout,
config,
true,
extender,
kernel.getLeftPadding(),
kernel.getRightPadding(),
kernel.getTopPadding(),
kernel.getBottomPadding());
this.kernel = kernel;
if ((kernel.getWidth() != 3) ||
(kernel.getHeight() != 3) ||
(kernel.getXOrigin() != 1) ||
(kernel.getYOrigin() != 1)) {
throw new RuntimeException(JaiI18N.getString("Convolve3x3OpImage0"));
}
if (sampleModel.getDataType() == DataBuffer.TYPE_BYTE) {
float kdata[] = kernel.getKernelData();
float k0 = kdata[0],
k1 = kdata[1],
k2 = kdata[2],
k3 = kdata[3],
k4 = kdata[4],
k5 = kdata[5],
k6 = kdata[6],
k7 = kdata[7],
k8 = kdata[8];
for (int j = 0; j < 256; j++) {
byte b = (byte)j;
float f = (float)j;
tables[0][b+128] = k0*f+0.5f;
tables[1][b+128] = k1*f;
tables[2][b+128] = k2*f;
tables[3][b+128] = k3*f;
tables[4][b+128] = k4*f;
tables[5][b+128] = k5*f;
tables[6][b+128] = k6*f;
tables[7][b+128] = k7*f;
tables[8][b+128] = k8*f;
}
}
}
示例3: DilateOpImage
import javax.media.jai.KernelJAI; //导入依赖的package包/类
/**
* Creates a DilateOpImage given a ParameterBlock containing the image
* source and pre-rotated dilation kernel. The image dimensions are
* derived
* from the source image. The tile grid layout, SampleModel, and
* ColorModel may optionally be specified by an ImageLayout
* object.
*
* @param source a RenderedImage.
* @param extender a BorderExtender, or null.
* @param layout an ImageLayout optionally containing the tile grid layout,
* SampleModel, and ColorModel, or null.
* @param kernel the pre-rotated dilation KernelJAI.
*/
public DilateOpImage(RenderedImage source,
BorderExtender extender,
Map config,
ImageLayout layout,
KernelJAI kernel) {
super(source,
layout,
config,
true,
extender,
kernel.getLeftPadding(),
kernel.getRightPadding(),
kernel.getTopPadding(),
kernel.getBottomPadding());
this.kernel = kernel;
kw = kernel.getWidth();
kh = kernel.getHeight();
kx = kernel.getXOrigin();
ky = kernel.getYOrigin();
kdata = kernel.getKernelData();
}
示例4: isFloydSteinbergKernel
import javax.media.jai.KernelJAI; //导入依赖的package包/类
/**
* Determines whether a kernel is the Floyd-Steinberg kernel.
*
* @param kernel The <code>KernelJAI</code> to examine.
* @return Whether the kernel argument is the Floyd-Steinberg kernel.
*/
private static boolean isFloydSteinbergKernel(KernelJAI kernel) {
int ky = kernel.getYOrigin();
return (kernel.getWidth() == 3 &&
kernel.getXOrigin() == 1 &&
kernel.getHeight() - ky == 2 &&
Math.abs(kernel.getElement(2, ky) - 7.0F/16.0F) <
FLOAT_EPSILON &&
Math.abs(kernel.getElement(0, ky+1) - 3.0F/16.0F) <
FLOAT_EPSILON &&
Math.abs(kernel.getElement(1, ky+1) - 5.0F/16.0F) <
FLOAT_EPSILON &&
Math.abs(kernel.getElement(2, ky+1) - 1.0F/16.0F) <
FLOAT_EPSILON);
}
示例5: DilateBinaryOpImage
import javax.media.jai.KernelJAI; //导入依赖的package包/类
/**
* Creates a DilateBinaryOpImage given a ParameterBlock containing the
* image source and pre-rotated dilation kernel. The image dimensions
* are derived from the source image. The tile grid layout, SampleModel,
* and ColorModel may optionally be specified by an ImageLayout object.
*
* @param source a RenderedImage.
* @param extender a BorderExtender, or null.
* @param layout an ImageLayout optionally containing the tile grid layout,
* SampleModel, and ColorModel, or null.
* @param kernel the pre-rotated dilation KernelJAI.
*/
public DilateBinaryOpImage(RenderedImage source,
BorderExtender extender,
Map config,
ImageLayout layout,
KernelJAI kernel) {
super(source,
layout,
configHelper(config),
true,
extender,
kernel.getLeftPadding(),
kernel.getRightPadding(),
kernel.getTopPadding(),
kernel.getBottomPadding());
this.kernel = kernel;
kw = kernel.getWidth();
kh = kernel.getHeight();
kx = kernel.getXOrigin();
ky = kernel.getYOrigin();
kwPack = (kw+31)/32;
kdataPack = packKernel(kernel);
}
示例6: packKernel
import javax.media.jai.KernelJAI; //导入依赖的package包/类
/** pack kernel into integers by row, aligned to the right;
* extra bits on the left are filled with 0 bits
* @params kernel - the given kernel (already rotated)
* @returns an integer array of ints from packed kernel data
*/
private final int[] packKernel(KernelJAI kernel){
int kw = kernel.getWidth();
int kh = kernel.getHeight();
int kwPack = (31+kw)/32;
int kerPacked[] = new int[kwPack * kh];
float[] kdata = kernel.getKernelData();
for (int j=0; j<kw; j++){
int m = j;
int lastCol = kwPack - 1;
bitShiftMatrixLeft(kerPacked, kh, kwPack);
for (int i=0; i< kh; i++, lastCol+=kwPack, m+= kw){
if (kdata[m] > .9F){ // same as == 1.0F
kerPacked[lastCol] |= 0x1;
}
}
}
return kerPacked;
}
示例7: ConvolveOpImage
import javax.media.jai.KernelJAI; //导入依赖的package包/类
/**
* Creates a ConvolveOpImage given a ParameterBlock containing the image
* source and pre-rotated convolution kernel. The image dimensions are
* derived
* from the source image. The tile grid layout, SampleModel, and
* ColorModel may optionally be specified by an ImageLayout
* object.
*
* @param source a RenderedImage.
* @param extender a BorderExtender, or null.
* @param layout an ImageLayout optionally containing the tile grid layout,
* SampleModel, and ColorModel, or null.
* @param kernel the pre-rotated convolution KernelJAI.
*/
public ConvolveOpImage(RenderedImage source,
BorderExtender extender,
Map config,
ImageLayout layout,
KernelJAI kernel) {
super(source,
layout,
config,
true,
extender,
kernel.getLeftPadding(),
kernel.getRightPadding(),
kernel.getTopPadding(),
kernel.getBottomPadding());
this.kernel = kernel;
kw = kernel.getWidth();
kh = kernel.getHeight();
kx = kernel.getXOrigin();
ky = kernel.getYOrigin();
}
示例8: create
import javax.media.jai.KernelJAI; //导入依赖的package包/类
/**
* Create a new instance of GradientOpImage in the rendered layer.
* This method satisfies the implementation of RIF.
*
* @param paramBlock The source image and the gradient's
* horizontal kernel & vertical kernel.
*/
public RenderedImage create(ParameterBlock paramBlock,
RenderingHints renderHints) {
// Get ImageLayout from renderHints if any.
ImageLayout layout = RIFUtil.getImageLayoutHint(renderHints);
// Get BorderExtender from renderHints if any.
BorderExtender extender = RIFUtil.getBorderExtenderHint(renderHints);
RenderedImage source = paramBlock.getRenderedSource(0);
// Get the Horizontal & Vertical kernels
KernelJAI kern_h = (KernelJAI)paramBlock.getObjectParameter(0);
KernelJAI kern_v = (KernelJAI)paramBlock.getObjectParameter(1);
return new GradientOpImage(source,
extender,
renderHints,
layout,
kern_h,
kern_v);
}
示例9: ErodeOpImage
import javax.media.jai.KernelJAI; //导入依赖的package包/类
/**
* Creates a ErodeOpImage given a ParameterBlock containing the image
* source and pre-rotated erosion kernel. The image dimensions are
* derived
* from the source image. The tile grid layout, SampleModel, and
* ColorModel may optionally be specified by an ImageLayout
* object.
*
* @param source a RenderedImage.
* @param extender a BorderExtender, or null.
* @param layout an ImageLayout optionally containing the tile grid layout,
* SampleModel, and ColorModel, or null.
* @param kernel the pre-rotated erosion KernelJAI.
*/
public ErodeOpImage(RenderedImage source,
BorderExtender extender,
Map config,
ImageLayout layout,
KernelJAI kernel) {
super(source,
layout,
config,
true,
extender,
kernel.getLeftPadding(),
kernel.getRightPadding(),
kernel.getTopPadding(),
kernel.getBottomPadding());
this.kernel = kernel;
kw = kernel.getWidth();
kh = kernel.getHeight();
kx = kernel.getXOrigin();
ky = kernel.getYOrigin();
kdata = kernel.getKernelData();
}
示例10: ErodeBinaryOpImage
import javax.media.jai.KernelJAI; //导入依赖的package包/类
/**
* Creates a ErodeBinaryOpImage given a ParameterBlock containing the image
* source and pre-rotated erosion kernel. The image dimensions are
* derived
* from the source image. The tile grid layout, SampleModel, and
* ColorModel may optionally be specified by an ImageLayout
* object.
*
* @param source a RenderedImage.
* @param extender a BorderExtender, or null.
* @param layout an ImageLayout optionally containing the tile grid layout,
* SampleModel, and ColorModel, or null.
* @param kernel the pre-rotated erosion KernelJAI.
*/
public ErodeBinaryOpImage(RenderedImage source,
BorderExtender extender,
Map config,
ImageLayout layout,
KernelJAI kernel) {
super(source,
layout,
configHelper(config),
true,
extender,
kernel.getLeftPadding(),
kernel.getRightPadding(),
kernel.getTopPadding(),
kernel.getBottomPadding());
this.kernel = kernel;
kw = kernel.getWidth();
kh = kernel.getHeight();
kx = kernel.getXOrigin();
ky = kernel.getYOrigin();
kwPack = (kw+31)/32;
kdataPack = packKernel(kernel);
}
示例11: validateParameters
import javax.media.jai.KernelJAI; //导入依赖的package包/类
/**
* Validates the input parameters.
*
* <p> In addition to the standard checks performed by the
* superclass method, this method checks that "mask1" and "mask2"
* have the same dimensions.
*/
protected boolean validateParameters(ParameterBlock args,
StringBuffer msg) {
if (!super.validateParameters(args, msg)) {
return false;
}
KernelJAI h_kernel = (KernelJAI)args.getObjectParameter(0);
KernelJAI v_kernel = (KernelJAI)args.getObjectParameter(1);
/* Check if both kernels are equivalent in terms of dimensions. */
if ((h_kernel.getWidth() != v_kernel.getWidth()) ||
(h_kernel.getHeight() != v_kernel.getHeight())) {
msg.append(getName() + " " +
JaiI18N.getString("GradientMagnitudeDescriptor1"));
return false;
}
return true;
}
示例12: actionPerformed
import javax.media.jai.KernelJAI; //导入依赖的package包/类
@Override
public void actionPerformed(ActionEvent e) {
// get the filename
JFileChooser fc = new JFileChooser();
fc.setFileFilter(new ImageFileFilter());
int returnVal = fc.showDialog(null, "Choose the image to assess");
if (returnVal != JFileChooser.APPROVE_OPTION) {
return;
}
File path = fc.getSelectedFile();
BufferedImage image;
try {
image = ImageIO.read(path);
TiledImage pImage = new TiledImage(image, true);
RasterClutterMethod clutterMethod = new RasterClutterMethod(pImage);
System.out.println(clutterMethod.getEdgeDensityClutter());
// export image
KernelJAI sobelVertKernel = KernelJAI.GRADIENT_MASK_SOBEL_VERTICAL;
KernelJAI sobelHorizKernel = KernelJAI.GRADIENT_MASK_SOBEL_HORIZONTAL;
ParameterBlock pb = new ParameterBlock();
pb.addSource(image);
pb.add(sobelHorizKernel);
pb.add(sobelVertKernel);
RenderedOp renderedOp = JAI.create("gradientmagnitude", pb);
BufferedImage edgeImage = renderedOp.getAsBufferedImage();
File outputfile = new File(path.getParent() + "\\"
+ path.getName().substring(0, path.getName().length() - 4)
+ "_edge.png");
ImageIO.write(edgeImage, "png", outputfile);
} catch (IOException e1) {
e1.printStackTrace();
}
}
示例13: createTargetProduct
import javax.media.jai.KernelJAI; //导入依赖的package包/类
private void createTargetProduct() throws OperatorException {
targetProduct = new Product(sourceProduct.getName(),
sourceProduct.getProductType(),
sourceProduct.getSceneRasterWidth(),
sourceProduct.getSceneRasterHeight());
targetProduct.setStartTime(sourceProduct.getStartTime());
targetProduct.setEndTime(sourceProduct.getEndTime());
targetProduct.setPreferredTileSize(pixelsPerCell, pixelsPerCell);
ProductUtils.copyMetadata(sourceProduct, targetProduct);
ProductUtils.copyTiePointGrids(sourceProduct, targetProduct);
ProductUtils.copyFlagBands(sourceProduct, targetProduct, true);
ProductUtils.copyMasks(sourceProduct, targetProduct);
Band b = sourceProduct.getBand(ScapeMConstants.VISIBILITY_BAND_NAME);
RenderedImage sourceImage = b.getSourceImage();
final int kernelSize = pixelsPerCell;
float[] kernelMatrix = new float[kernelSize * kernelSize];
for (int k = 0; k < kernelMatrix.length; k++) {
kernelMatrix[k] = 1.0f / (kernelSize * kernelSize);
}
KernelJAI kernel = new KernelJAI(kernelSize, kernelSize, kernelMatrix);
final BorderExtender borderExtender = BorderExtender.createInstance(BorderExtender.BORDER_COPY);
RenderingHints testHints = new RenderingHints(JAI.KEY_BORDER_EXTENDER, borderExtender);
RenderedOp targetImage = ConvolveDescriptor.create(sourceImage, kernel, testHints);
Band targetBand = ProductUtils.copyBand(ScapeMConstants.VISIBILITY_BAND_NAME, sourceProduct, targetProduct, false);
targetBand.setSourceImage(targetImage);
}
示例14: populateKernelKAI
import javax.media.jai.KernelJAI; //导入依赖的package包/类
/**
* Populate interpolation map.
*/
private static synchronized void populateKernelKAI() {
if (kernelJAIMap == null) {
kernelJAIMap = new HashMap<KernelJAI, String>();
kernelJAIMap.put(KernelJAI.GRADIENT_MASK_SOBEL_HORIZONTAL,
"GRADIENT_MASK_SOBEL_HORIZONTAL");
kernelJAIMap.put(KernelJAI.GRADIENT_MASK_SOBEL_VERTICAL,
"GRADIENT_MASK_SOBEL_VERTICAL");
}
}
示例15: setValue
import javax.media.jai.KernelJAI; //导入依赖的package包/类
@Override
public void setValue(Object aValue) {
this.value = null;
this.expression = null;
if (aValue instanceof KernelJAI) {
this.value = (KernelJAI) aValue;
} else if ((aValue instanceof AttributeExpressionImpl)
|| (aValue instanceof LiteralExpressionImpl)
|| (aValue instanceof FunctionExpressionImpl)
|| (aValue instanceof MathExpressionImpl)) {
this.expression = (Expression) aValue;
}
}