Mercurial > hg > jslab
view src/samer/maths/MatrixImageSourceF.java @ 0:bf79fb79ee13
Initial Mercurial check in.
author | samer |
---|---|
date | Tue, 17 Jan 2012 17:50:20 +0000 |
parents | |
children |
line wrap: on
line source
/* * MatrixImageSourceF.java * * Copyright (c) 2000, Samer Abdallah, King's College London. * All rights reserved. * * This software is provided AS iS and WITHOUT ANY WARRANTY; * without even the implied warranty of MERCHANTABILITY or * FITNESS FOR A PARTICULAR PURPOSE. */ package samer.maths; import samer.tools.*; import java.awt.image.*; import Jama.Matrix; /** This one sends pixels in vertical strips: better for column vectors or very narrow matrices */ public class MatrixImageSourceF extends ImageSourceBase { Matrix matrix; byte [] strip; public MatrixImageSourceF( Matrix mat) { matrix = mat; width = mat.getColumnDimension(); height = mat.getRowDimension(); strip = new byte[height]; } public void newMatrix(Matrix mat) { matrix=mat; sendPixels(); } protected int getHints() { if (width==1) { return ImageConsumer.TOPDOWNLEFTRIGHT | ImageConsumer.COMPLETESCANLINES | ImageConsumer.SINGLEPASS; } else { return ImageConsumer.RANDOMPIXELORDER | ImageConsumer.SINGLEPASS; } } protected void sendPixels(ImageConsumer ic) { double[][] X=matrix.getArray(); for (int i=0; i<width; i++) { for (int j=0; j<height; j++) { strip[height-1-j] = (byte)map.clipInt(X[j][i]); } ic.setPixels(i, 0, 1, height, model, strip, 0, 1); } } }