当前位置: 首页>>代码示例>>Java>>正文


Java ImageFloat32.getHeight方法代码示例

本文整理汇总了Java中boofcv.struct.image.ImageFloat32.getHeight方法的典型用法代码示例。如果您正苦于以下问题:Java ImageFloat32.getHeight方法的具体用法?Java ImageFloat32.getHeight怎么用?Java ImageFloat32.getHeight使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在boofcv.struct.image.ImageFloat32的用法示例。


在下文中一共展示了ImageFloat32.getHeight方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: computeWeightedError

import boofcv.struct.image.ImageFloat32; //导入方法依赖的package包/类
public static double computeWeightedError(ImageFloat32 imgA, ImageFloat32 imgB ,
										  ImageFloat32 imgWeight ) {
	final int h = imgA.getHeight();
	final int w = imgA.getWidth();

	double total = 0;
	double totalWeight = 0;

	for (int y = 0; y < h; y++) {
		for (int x = 0; x < w; x++) {
			float weight = imgWeight.get(x,y);
			double difference =  Math.abs(imgA.get(x,y)-imgB.get(x,y));
			total += difference*weight;
			totalWeight += weight;
		}
	}

	return total / totalWeight;
}
 
开发者ID:intrack,项目名称:BoofCV-master,代码行数:20,代码来源:DenoiseVisualizeApp.java

示例2: process

import boofcv.struct.image.ImageFloat32; //导入方法依赖的package包/类
/**
 * Computes the derivative along the x and y axes
 */
public static void process(ImageFloat32 orig, ImageFloat32 derivX, ImageFloat32 derivY) {
	final float[] data = orig.data;
	final float[] imgX = derivX.data;
	final float[] imgY = derivY.data;

	final int width = orig.getWidth();
	final int height = orig.getHeight() - 1;
	final int stride = orig.stride;

	for (int y = 1; y < height; y++) {
		int indexX = derivX.startIndex + derivX.stride * y + 1;
		int indexY = derivY.startIndex + derivY.stride * y + 1;
		int indexSrc = orig.startIndex + stride * y + 1;
		final int endX = indexSrc + width - 2;

		for (; indexSrc < endX; indexSrc++) {
			imgX[indexX++] = (data[indexSrc + 1] - data[indexSrc - 1]) * 0.5f;
			imgY[indexY++] = (data[indexSrc + stride] - data[indexSrc - stride]) * 0.5f;
		}
	}
}
 
开发者ID:intrack,项目名称:BoofCV-master,代码行数:25,代码来源:GradientThree_Standard.java

示例3: process_F32

import boofcv.struct.image.ImageFloat32; //导入方法依赖的package包/类
/**
 * Computes derivative of ImageFloat32.  None of the images can be sub-images.
 */
public static void process_F32(ImageFloat32 orig,
							   ImageFloat32 derivX,
							   ImageFloat32 derivY) {
	final float[] data = orig.data;
	final float[] imgX = derivX.data;
	final float[] imgY = derivY.data;

	final int width = orig.getWidth();
	final int height = orig.getHeight() - 1;

	for (int y = 1; y < height; y++) {
		int endX = width * y + width - 1;

		for (int index = width * y + 1; index < endX; index++) {
			float v = (data[index + width + 1] - data[index - width - 1]) * 0.25F;
			float w = (data[index + width - 1] - data[index - width + 1]) * 0.25F;

			imgY[index] = (data[index + width] - data[index - width]) * 0.5F + v + w;
			imgX[index] = (data[index + 1] - data[index - 1]) * 0.5F + v - w;
		}
	}
}
 
开发者ID:intrack,项目名称:BoofCV-master,代码行数:26,代码来源:GradientSobel_Outer.java

示例4: grayToBitmap

import boofcv.struct.image.ImageFloat32; //导入方法依赖的package包/类
/**
 * Converts ImageSingleBand into Bitmap.
 *
 * @see #declareStorage(android.graphics.Bitmap, byte[])
 * 
 * @param input Input gray scale image.
 * @param output Output Bitmap image.
 * @param storage Byte array used for internal storage. If null it will be declared internally.
 */
public static void grayToBitmap( ImageFloat32 input , Bitmap output , byte[] storage ) {
	if( output.getWidth() != input.getWidth() || output.getHeight() != input.getHeight() ) {
		throw new IllegalArgumentException("Image shapes are not the same");
	}
	
	if( storage == null )
		storage = declareStorage(output,null);
	
	ImplConvertBitmap.grayToArray(input, storage,output.getConfig());
	output.copyPixelsFromBuffer(ByteBuffer.wrap(storage));
}
 
开发者ID:intrack,项目名称:BoofCV-master,代码行数:21,代码来源:ConvertBitmap.java

示例5: process

import boofcv.struct.image.ImageFloat32; //导入方法依赖的package包/类
public static void process(ImageFloat32 orig,
						   ImageFloat32 derivX,
						   ImageFloat32 derivY) {
	final float[] data = orig.data;
	final float[] imgX = derivX.data;
	final float[] imgY = derivY.data;

	final int width = orig.getWidth();
	final int height = orig.getHeight() - 1;
	final int strideSrc = orig.getStride();

	for (int y = 1; y < height; y++) {
		int indexSrc = orig.startIndex + orig.stride * y + 1;
		final int endX = indexSrc + width - 2;

		int indexX = derivX.startIndex + derivX.stride * y + 1;
		int indexY = derivY.startIndex + derivY.stride * y + 1;

		for (; indexSrc < endX; indexSrc++) {
			// a33 - a11
			float w = data[indexSrc + strideSrc + 1] - data[indexSrc - strideSrc - 1];
			// a31 - a13
			float v = data[indexSrc + strideSrc - 1] - data[indexSrc - strideSrc + 1];

			//a32 + w + v - a12
			imgY[indexY++] = data[indexSrc + strideSrc ]+w+v-data[indexSrc - strideSrc ];

			//a23 + w - v - a21
			imgX[indexX++] = data[indexSrc + 1]+w-v-data[indexSrc - 1];
		}
	}
}
 
开发者ID:intrack,项目名称:BoofCV-master,代码行数:33,代码来源:GradientPrewitt_Shared.java

示例6: process

import boofcv.struct.image.ImageFloat32; //导入方法依赖的package包/类
/**
 * Computes the derivative along the x and y axes
 */
public static void process(ImageFloat32 orig,
						   ImageFloat32 derivXX,
						   ImageFloat32 derivYY,
						   ImageFloat32 derivXY) {
	final float[] data = orig.data;
	final float[] imgX = derivXX.data;
	final float[] imgY = derivYY.data;
	final float[] imgXY = derivXY.data;

	final int width = orig.getWidth();
	final int height = orig.getHeight() - 2;
	final int stride = orig.stride;

	for (int y = 2; y < height; y++) {
		int indexX = derivXX.startIndex + derivXX.stride * y + 2;
		int indexY = derivYY.startIndex + derivYY.stride * y + 2;
		int indexXY = derivXY.startIndex + derivXY.stride * y + 2;

		int indexSrc = orig.startIndex + stride * y + 2;
		
		final int endX = indexSrc + width - 4;

		for (; indexSrc < endX; indexSrc++) {
			float center = 2*data[indexSrc];
			imgX[indexX++] = (data[indexSrc - 2] - center + data[indexSrc + 2]) * 0.5f;
			imgY[indexY++] = (data[indexSrc - 2*stride] - center + data[indexSrc + 2*stride]) * 0.5f;
			imgXY[indexXY++] = (data[indexSrc - stride -1] - data[indexSrc - stride + 1]
					- data[indexSrc + stride - 1] + data[indexSrc + stride + 1]) * 0.5f;
		}
	}
}
 
开发者ID:intrack,项目名称:BoofCV-master,代码行数:35,代码来源:HessianThree_Standard.java

示例7: transform1

import boofcv.struct.image.ImageFloat32; //导入方法依赖的package包/类
/**
 * <p>
 * Performs a single level wavelet transform.
 * </p>
 *
 * @param desc Description of the wavelet.
 * @param input Input image. Not modified.
 * @param output Where the wavelet transform is written to. Modified.
 * @param storage Optional storage image.  Should be the same size as output image. If null then
 * an image is declared internally.
 */
public static void transform1( WaveletDescription<WlCoef_F32> desc ,
							   ImageFloat32 input , ImageFloat32 output ,
							   ImageFloat32 storage )
{
	UtilWavelet.checkShape(input,output);

	WlCoef_F32 coef = desc.getForward();

	if( output.width < coef.scaling.length || output.width < coef.wavelet.length )
		throw new IllegalArgumentException("Wavelet is too large for provided image.");
	if( output.height < coef.scaling.length || output.height < coef.wavelet.length )
		throw new IllegalArgumentException("Wavelet is too large for provided image.");
	storage = InputSanityCheck.checkDeclare(output, storage);

	// the faster routines can only be run on images which are not too small
	int minSize = Math.max(coef.getScalingLength(),coef.getWaveletLength())*3;

	if( input.getWidth() <= minSize || input.getHeight() <= minSize ) {
		ImplWaveletTransformNaive.horizontal(desc.getBorder(),coef,input,storage);
		ImplWaveletTransformNaive.vertical(desc.getBorder(),coef,storage,output);
	} else {
		ImplWaveletTransformInner.horizontal(coef,input,storage);
		ImplWaveletTransformBorder.horizontal(desc.getBorder(),coef,input,storage);
		ImplWaveletTransformInner.vertical(coef,storage,output);
		ImplWaveletTransformBorder.vertical(desc.getBorder(),coef,storage,output);
	}
}
 
开发者ID:intrack,项目名称:BoofCV-master,代码行数:39,代码来源:WaveletTransformOps.java

示例8: inverse1

import boofcv.struct.image.ImageFloat32; //导入方法依赖的package包/类
/**
 * <p>
 * Performs a single level inverse wavelet transform. Do not pass in a whole image which has been
 * transformed by a multilevel transform.  Just the relevant sub-image.
 * </p>
 *
 * @param desc Description of the inverse wavelet.
 * @param input Input wavelet transform. Not modified.
 * @param output Reconstruction of original image. Modified.
 * @param storage Optional storage image.  Should be the same size as the input image. If null then
 * an image is declared internally.
 * @param minValue Minimum allowed pixel value
 * @param maxValue Maximum allowed pixel value
 */
public static void inverse1( WaveletDescription<WlCoef_F32> desc ,
							 ImageFloat32 input , ImageFloat32 output ,
							 ImageFloat32 storage , float minValue , float maxValue )
{
	UtilWavelet.checkShape(output,input);
	WlCoef_F32 coef = desc.getForward();
	if( output.width < coef.scaling.length || output.width < coef.wavelet.length )
		throw new IllegalArgumentException("Wavelet is too large for provided image.");
	if( output.height < coef.scaling.length || output.height < coef.wavelet.length )
		throw new IllegalArgumentException("Wavelet is too large for provided image.");
	storage = InputSanityCheck.checkDeclare(input, storage);

	// the faster routines can only be run on images which are not too small
	int minSize = Math.max(coef.getScalingLength(),coef.getWaveletLength())*3;

	if( output.getWidth() <= minSize || output.getHeight() <= minSize ) {
		ImplWaveletTransformNaive.verticalInverse(desc.getBorder(), desc.getInverse(), input, storage);
		ImplWaveletTransformNaive.horizontalInverse(desc.getBorder(), desc.getInverse(), storage, output);
	} else {
		ImplWaveletTransformInner.verticalInverse(desc.getInverse().getInnerCoefficients(),input,storage);
		ImplWaveletTransformBorder.verticalInverse(desc.getBorder(),desc.getInverse(),input,storage);
		ImplWaveletTransformInner.horizontalInverse(desc.getInverse().getInnerCoefficients(),storage,output);
		ImplWaveletTransformBorder.horizontalInverse(desc.getBorder(),desc.getInverse(),storage,output);
	}
	if( minValue != -Float.MAX_VALUE && maxValue != Float.MAX_VALUE )
		PixelMath.boundImage(output,minValue,maxValue);
}
 
开发者ID:intrack,项目名称:BoofCV-master,代码行数:42,代码来源:WaveletTransformOps.java

示例9: horizontal5

import boofcv.struct.image.ImageFloat32; //导入方法依赖的package包/类
public static void horizontal5( Kernel1D_F32 kernel ,
								ImageFloat32 image, ImageFloat32 dest,
								boolean includeBorder) {
	final float[] dataSrc = image.data;
	final float[] dataDst = dest.data;

	final float k1 = kernel.data[0];
	final float k2 = kernel.data[1];
	final float k3 = kernel.data[2];
	final float k4 = kernel.data[3];
	final float k5 = kernel.data[4];

	final int radius = kernel.getRadius();

	final int yBorder = includeBorder ? 0 : radius;

	final int width = image.getWidth();
	final int height = image.getHeight()-yBorder;

	for( int i = yBorder; i < height; i++ ) {
		int indexDst = dest.startIndex + i*dest.stride+radius;
		int j = image.startIndex + i*image.stride - radius;
		final int jEnd = j+width-radius;

		for( j += radius; j < jEnd; j++ ) {
			int indexSrc = j;
			float total = (dataSrc[indexSrc++])*k1;
			total += (dataSrc[indexSrc++])*k2;
			total += (dataSrc[indexSrc++])*k3;
			total += (dataSrc[indexSrc++])*k4;
			total += (dataSrc[indexSrc])*k5;

			dataDst[indexDst++] = total;
		}
	}
}
 
开发者ID:intrack,项目名称:BoofCV-master,代码行数:37,代码来源:ConvolveImageUnrolled_F32_F32.java

示例10: derivX_F32

import boofcv.struct.image.ImageFloat32; //导入方法依赖的package包/类
/**
 * Can only be used with images that are NOT sub-images.
 */
public static void derivX_F32(ImageFloat32 orig,
							  ImageFloat32 derivX) {
	final float[] data = orig.data;
	final float[] imgX = derivX.data;

	final int width = orig.getWidth();
	final int height = orig.getHeight();

	for (int y = 0; y < height; y++) {
		int index = width * y + 1;
		int endX = index + width - 2;
		int endXAlt = endX - (width - 2) % 3;

		float x0 = data[index - 1];
		float x1 = data[index];

		for (; index < endXAlt;) {
			float x2 = data[index + 1];
			imgX[index++] = (x2 - x0) * 0.5f;
			x0 = data[index + 1];
			imgX[index++] = (x0 - x1) * 0.5f;
			x1 = data[index + 1];
			imgX[index++] = (x1 - x2) * 0.5f;
		}

		for (; index < endX; index++) {
			imgX[index] = (data[index + 1] - data[index - 1]) * 0.5f;
		}
	}
}
 
开发者ID:intrack,项目名称:BoofCV-master,代码行数:34,代码来源:GradientThree_Share.java

示例11: strictRule

import boofcv.struct.image.ImageFloat32; //导入方法依赖的package包/类
private void strictRule(ImageFloat32 intensityImage, QueueCorner corners) {
	final int imgWidth = intensityImage.getWidth();
	final int imgHeight = intensityImage.getHeight();

	final float inten[] = intensityImage.data;

	for (int y = border; y < imgHeight - border; y++) {
		int center = intensityImage.startIndex + y * intensityImage.stride + border;
		for (int x = border; x < imgWidth - border; x++) {

			float val = inten[center++];
			if (val < thresh) continue;

			boolean max = true;

			int x0 = x - radius;
			int x1 = x + radius;
			int y0 = y - radius;
			int y1 = y + radius;

			if (x0 < border) x0 = border;
			if (y0 < border) y0 = border;
			if (x1 >= imgWidth-border) x1 = imgWidth - border - 1;
			if (y1 >= imgHeight-border) y1 = imgHeight - border - 1;

			escape:
			for (int i = y0; i <= y1; i++) {
				int index = intensityImage.startIndex + i * intensityImage.stride + x0;
				for (int j = x0; j <= x1; j++, index++) {
					// don't compare the center point against itself
					if (i == y && j == x)
						continue;

					if (val <= inten[index]) {
						max = false;
						break escape;
					}
				}
			}

			// add points which are local maximums and are not already contained in the corners list
			if (max && val != Float.MAX_VALUE) {
				corners.add(x, y);
			}
		}
	}
}
 
开发者ID:intrack,项目名称:BoofCV-master,代码行数:48,代码来源:NonMaxExtractorNaive.java

示例12: vertical9

import boofcv.struct.image.ImageFloat32; //导入方法依赖的package包/类
public static void vertical9( Kernel1D_F32 kernel,
							 ImageFloat32 image, ImageFloat32 dest,
							 boolean includeBorder)
{
	final float[] dataSrc = image.data;
	final float[] dataDst = dest.data;

	final float k1 = kernel.data[0];
	final float k2 = kernel.data[1];
	final float k3 = kernel.data[2];
	final float k4 = kernel.data[3];
	final float k5 = kernel.data[4];
	final float k6 = kernel.data[5];
	final float k7 = kernel.data[6];
	final float k8 = kernel.data[7];
	final float k9 = kernel.data[8];

	final int radius = kernel.getRadius();

	final int imgWidth = dest.getWidth();
	final int imgHeight = dest.getHeight();

	final int yEnd = imgHeight-radius;

	final int xBorder = includeBorder ? 0 : radius;

	for( int y = radius; y < yEnd; y++ ) {
		int indexDst = dest.startIndex+y*dest.stride+xBorder;
		int i = image.startIndex + (y-radius)*image.stride;
		final int iEnd = i+imgWidth-xBorder;

		for( i += xBorder; i < iEnd; i++ ) {
			int indexSrc = i;

			float total = (dataSrc[indexSrc]) * k1;
			indexSrc += image.stride;
			total += (dataSrc[indexSrc])*k2;
			indexSrc += image.stride;
			total += (dataSrc[indexSrc])*k3;
			indexSrc += image.stride;
			total += (dataSrc[indexSrc])*k4;
			indexSrc += image.stride;
			total += (dataSrc[indexSrc])*k5;
			indexSrc += image.stride;
			total += (dataSrc[indexSrc])*k6;
			indexSrc += image.stride;
			total += (dataSrc[indexSrc])*k7;
			indexSrc += image.stride;
			total += (dataSrc[indexSrc])*k8;
			indexSrc += image.stride;
			total += (dataSrc[indexSrc])*k9;

			dataDst[indexDst++] = total;
		}
	}
}
 
开发者ID:intrack,项目名称:BoofCV-master,代码行数:57,代码来源:ConvolveImageUnrolled_F32_F32.java

示例13: horizontal7

import boofcv.struct.image.ImageFloat32; //导入方法依赖的package包/类
public static void horizontal7( Kernel1D_F32 kernel ,
								ImageFloat32 input, ImageFloat32 output ,
								int skip ) {
	final float[] dataSrc = input.data;
	final float[] dataDst = output.data;

	final float k1 = kernel.data[0];
	final float k2 = kernel.data[1];
	final float k3 = kernel.data[2];
	final float k4 = kernel.data[3];
	final float k5 = kernel.data[4];
	final float k6 = kernel.data[5];
	final float k7 = kernel.data[6];

	final int radius = kernel.getRadius();

	final int widthEnd = UtilDownConvolve.computeMaxSide(input.width,skip,radius);
	final int height = input.getHeight();

	final int offsetX = UtilDownConvolve.computeOffset(skip,radius);

	for( int i = 0; i < height; i++ ) {
		int indexDst = output.startIndex + i*output.stride + offsetX/skip;
		int j = input.startIndex + i*input.stride - radius;
		final int jEnd = j+widthEnd;

		for( j += offsetX; j <= jEnd; j += skip ) {
			int indexSrc = j;

			float total = (dataSrc[indexSrc++] ) * k1;
			total += (dataSrc[indexSrc++])*k2;
			total += (dataSrc[indexSrc++])*k3;
			total += (dataSrc[indexSrc++])*k4;
			total += (dataSrc[indexSrc++])*k5;
			total += (dataSrc[indexSrc++])*k6;
			total += (dataSrc[indexSrc])*k7;

			dataDst[indexDst++] = total;
		}
	}
}
 
开发者ID:intrack,项目名称:BoofCV-master,代码行数:42,代码来源:ConvolveDownNoBorderUnrolled_F32_F32.java

示例14: horizontal9

import boofcv.struct.image.ImageFloat32; //导入方法依赖的package包/类
public static void horizontal9( Kernel1D_F32 kernel ,
								ImageFloat32 input, ImageFloat32 output ,
								int skip ) {
	final float[] dataSrc = input.data;
	final float[] dataDst = output.data;

	final float k1 = kernel.data[0];
	final float k2 = kernel.data[1];
	final float k3 = kernel.data[2];
	final float k4 = kernel.data[3];
	final float k5 = kernel.data[4];
	final float k6 = kernel.data[5];
	final float k7 = kernel.data[6];
	final float k8 = kernel.data[7];
	final float k9 = kernel.data[8];

	final int radius = kernel.getRadius();

	final int widthEnd = UtilDownConvolve.computeMaxSide(input.width,skip,radius);
	final int height = input.getHeight();

	final int offsetX = UtilDownConvolve.computeOffset(skip,radius);

	for( int i = 0; i < height; i++ ) {
		int indexDst = output.startIndex + i*output.stride + offsetX/skip;
		int j = input.startIndex + i*input.stride - radius;
		final int jEnd = j+widthEnd;

		for( j += offsetX; j <= jEnd; j += skip ) {
			int indexSrc = j;

			float total = (dataSrc[indexSrc++] ) * k1;
			total += (dataSrc[indexSrc++])*k2;
			total += (dataSrc[indexSrc++])*k3;
			total += (dataSrc[indexSrc++])*k4;
			total += (dataSrc[indexSrc++])*k5;
			total += (dataSrc[indexSrc++])*k6;
			total += (dataSrc[indexSrc++])*k7;
			total += (dataSrc[indexSrc++])*k8;
			total += (dataSrc[indexSrc])*k9;

			dataDst[indexDst++] = total;
		}
	}
}
 
开发者ID:intrack,项目名称:BoofCV-master,代码行数:46,代码来源:ConvolveDownNoBorderUnrolled_F32_F32.java

示例15: horizontal11

import boofcv.struct.image.ImageFloat32; //导入方法依赖的package包/类
public static void horizontal11( Kernel1D_F32 kernel ,
								ImageFloat32 input, ImageFloat32 output ,
								int skip ) {
	final float[] dataSrc = input.data;
	final float[] dataDst = output.data;

	final float k1 = kernel.data[0];
	final float k2 = kernel.data[1];
	final float k3 = kernel.data[2];
	final float k4 = kernel.data[3];
	final float k5 = kernel.data[4];
	final float k6 = kernel.data[5];
	final float k7 = kernel.data[6];
	final float k8 = kernel.data[7];
	final float k9 = kernel.data[8];
	final float k10 = kernel.data[9];
	final float k11 = kernel.data[10];

	final int radius = kernel.getRadius();

	final int widthEnd = UtilDownConvolve.computeMaxSide(input.width,skip,radius);
	final int height = input.getHeight();

	final int offsetX = UtilDownConvolve.computeOffset(skip,radius);

	for( int i = 0; i < height; i++ ) {
		int indexDst = output.startIndex + i*output.stride + offsetX/skip;
		int j = input.startIndex + i*input.stride - radius;
		final int jEnd = j+widthEnd;

		for( j += offsetX; j <= jEnd; j += skip ) {
			int indexSrc = j;

			float total = (dataSrc[indexSrc++] ) * k1;
			total += (dataSrc[indexSrc++])*k2;
			total += (dataSrc[indexSrc++])*k3;
			total += (dataSrc[indexSrc++])*k4;
			total += (dataSrc[indexSrc++])*k5;
			total += (dataSrc[indexSrc++])*k6;
			total += (dataSrc[indexSrc++])*k7;
			total += (dataSrc[indexSrc++])*k8;
			total += (dataSrc[indexSrc++])*k9;
			total += (dataSrc[indexSrc++])*k10;
			total += (dataSrc[indexSrc])*k11;

			dataDst[indexDst++] = total;
		}
	}
}
 
开发者ID:intrack,项目名称:BoofCV-master,代码行数:50,代码来源:ConvolveDownNoBorderUnrolled_F32_F32.java


注:本文中的boofcv.struct.image.ImageFloat32.getHeight方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。