本文整理汇总了Java中javax.media.jai.KernelJAI.getHeight方法的典型用法代码示例。如果您正苦于以下问题:Java KernelJAI.getHeight方法的具体用法?Java KernelJAI.getHeight怎么用?Java KernelJAI.getHeight使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类javax.media.jai.KernelJAI
的用法示例。
在下文中一共展示了KernelJAI.getHeight方法的14个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: 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;
}
}
}
示例2: 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();
}
示例3: 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);
}
示例4: 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);
}
示例5: 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;
}
示例6: 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();
}
示例7: 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();
}
示例8: 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);
}
示例9: 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;
}
示例10: GradientOpImage
import javax.media.jai.KernelJAI; //导入方法依赖的package包/类
/**
* Creates a GradientOpImage given the image source and
* the pair of orthogonal gradient kernels. 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_h the horizontal kernel.
* @param kernel_v the vertical kernel
*/
public GradientOpImage(RenderedImage source,
BorderExtender extender,
Map config,
ImageLayout layout,
KernelJAI kernel_h,
KernelJAI kernel_v) {
super(source,
layout,
config,
true,
extender,
kernel_h.getLeftPadding(),
kernel_h.getRightPadding(),
kernel_h.getTopPadding(),
kernel_h.getBottomPadding());
// Local copy of the kernels
this.kernel_h = kernel_h;
this.kernel_v = kernel_v;
//
// At this point both kernels should be of same width & height
// so it's enough to get the information from one of them
//
kw = kernel_h.getWidth();
kh = kernel_h.getHeight();
}
示例11: SeparableConvolveOpImage
import javax.media.jai.KernelJAI; //导入方法依赖的package包/类
/**
* Creates a SeparableConvoveOpImage on the source
* with the given pre-rotated kernel. The image dimensions are
* derived 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 a pre-rotated convolution kernel
*/
public SeparableConvolveOpImage(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();
hValues = kernel.getHorizontalKernelData();
vValues = kernel.getVerticalKernelData();
if (sampleModel.getDataType() == DataBuffer.TYPE_BYTE) {
hTables = new float[hValues.length][256];
for (int i = 0; i < hValues.length; i++) {
float k = hValues[i];
for (int j = 0; j < 256; j++) {
byte b = (byte)j;
float f = (float)j;
hTables[i][b+128] = k*f;
}
}
}
}
示例12: create
import javax.media.jai.KernelJAI; //导入方法依赖的package包/类
/**
* Create a new instance of UnsharpMaskOpImage in the rendered layer.
* This method satisfies the implementation of RIF.
*
* @param paramBlock The source image, the unsharp mask kernel and
* the gain factor.
*/
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);
// map the input kernel + gain factor to an equivalent
// convolution kernel and then do a normal convolve.
KernelJAI unRotatedKernel =
ImageUtil.getUnsharpMaskEquivalentKernel(
(KernelJAI)paramBlock.getObjectParameter(0),
paramBlock.getFloatParameter(1));
KernelJAI kJAI = unRotatedKernel.getRotatedKernel();
RenderedImage source = paramBlock.getRenderedSource(0);
int dataType = source.getSampleModel().getDataType();
boolean dataTypeOk = (dataType == DataBuffer.TYPE_BYTE ||
dataType == DataBuffer.TYPE_SHORT ||
dataType == DataBuffer.TYPE_INT);
if ((kJAI.getWidth() == 3) && (kJAI.getHeight() == 3) &&
(kJAI.getXOrigin() == 1) && (kJAI.getYOrigin() == 1) && dataTypeOk) {
return new Convolve3x3OpImage(source,
extender,
renderHints,
layout,
kJAI);
} else if (kJAI.isSeparable()) {
return new SeparableConvolveOpImage(source,
extender,
renderHints,
layout,
kJAI);
} else {
return new ConvolveOpImage(source,
extender,
renderHints,
layout,
kJAI);
}
}
示例13: create
import javax.media.jai.KernelJAI; //导入方法依赖的package包/类
/**
* Create a new instance of ConvolveOpImage in the rendered layer.
* This method satisfies the implementation of RIF.
*
* @param paramBlock The source image and the convolution 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);
KernelJAI unRotatedKernel =
(KernelJAI)paramBlock.getObjectParameter(0);
KernelJAI kJAI = unRotatedKernel.getRotatedKernel();
int dataType =
paramBlock.getRenderedSource(0).getSampleModel().getDataType();
boolean dataTypeOk = (dataType == DataBuffer.TYPE_BYTE ||
dataType == DataBuffer.TYPE_SHORT ||
dataType == DataBuffer.TYPE_INT);
if (kJAI.getWidth() == 3 && kJAI.getHeight() == 3 &&
kJAI.getXOrigin() == 1 && kJAI.getYOrigin() == 1 &&
dataTypeOk) {
return new Convolve3x3OpImage(paramBlock.getRenderedSource(0),
extender,
renderHints,
layout,
kJAI);
} else if (kJAI.isSeparable()) {
return new SeparableConvolveOpImage(paramBlock.getRenderedSource(0),
extender,
renderHints,
layout,
kJAI);
} else {
return new ConvolveOpImage(paramBlock.getRenderedSource(0),
extender,
renderHints,
layout,
kJAI);
}
}
示例14: getUnsharpMaskEquivalentKernel
import javax.media.jai.KernelJAI; //导入方法依赖的package包/类
/**
* Given a kernel and the gain (sharpness) factor of an
* UnsharpMask operation, compute a modified kernel that
* would be equivalent to the specified unsharp operation.
*
* for UnsharpMask function we have the following formula:
*
* dst(i,j) = src(i,j) + gain *
* (src(i,j) - SUM SUM K(l,m) * src(i+l,j+m))
* l m
*
* Which can be written as :
*
* dst(i,j) = SUM SUM Q(l,m) * src(i+l,j+m),
* l m
*
* where Q(0,0) = 1 + gain * (1 - K(0,0)), and
* Q(l,m) = - gain * K(l,m) otherwise
*
* @param kernel the unsharp mask kernel
* @param gain the unsharp mask gain (sharpness) factor.
*
* @return an equivalent convolution KernelJAI
*/
public static KernelJAI getUnsharpMaskEquivalentKernel(
KernelJAI kernel, float gain) {
int width = kernel.getWidth();
int height = kernel.getHeight();
int xOrigin = kernel.getXOrigin();
int yOrigin = kernel.getYOrigin();
float oldData[] = kernel.getKernelData();
float newData[] = new float[oldData.length];
int k;
for (k = 0; k < width*height; k++)
newData[k] = -gain * oldData[k];
k = yOrigin*width + xOrigin;
newData[k] = 1.0f + gain * (1.0f - oldData[k]);
return new KernelJAI(width, height, xOrigin, yOrigin, newData);
}