public static void from_3BU8_to_U8(ByteBuffer src , int srcOffset , int srcStride , GrayU8 dst , GrowQueue_I8 work ) { work.resize(dst.width*3); int indexSrc = srcOffset; for (int y = 0; y < dst.height; y++) { src.position(indexSrc); src.get(work.data,0,work.size); int indexDst = dst.startIndex + dst.stride * y; for (int i = 0; i < work.size;) { int r = work.data[i++] & 0xFF; int g = work.data[i++] & 0xFF; int b = work.data[i++] & 0xFF; int ave = (r + g + b) / 3; dst.data[indexDst++] = (byte) ave; } indexSrc += srcStride; } }
public static void from_3BU8_to_F32(ByteBuffer src , int srcOffset , int srcStride , GrayF32 dst , GrowQueue_I8 work ) { work.resize(dst.width*3); int indexSrc = srcOffset; for (int y = 0; y < dst.height; y++) { src.position(indexSrc); src.get(work.data,0,work.size); int indexDst = dst.startIndex + dst.stride * y; for (int i = 0; i < work.size;) { int r = work.data[i++] & 0xFF; int g = work.data[i++] & 0xFF; int b = work.data[i++] & 0xFF; int ave = (r + g + b) / 3; dst.data[indexDst++] = ave; } indexSrc += srcStride; } }
public static void from_3BU8_to_3IF32(ByteBuffer src , int srcOffset , int srcStride , InterleavedF32 dst , GrowQueue_I8 work ) { work.resize(dst.width*3); int indexSrc = srcOffset; for (int y = 0; y < dst.height; y++) { src.position(indexSrc); src.get(work.data,0,work.size); int indexDst = dst.startIndex + dst.stride * y; for (int i = 0; i < work.size; ) { dst.data[indexDst++] = work.data[i++] & 0xFF; dst.data[indexDst++] = work.data[i++] & 0xFF; dst.data[indexDst++] = work.data[i++] & 0xFF; } indexSrc += srcStride; } } }
public static boolean readNext( DataInputStream fis , GrowQueue_I8 output ) throws IOException { int r; if( (r =fis.read()) != 0xFF || (r = fis.read()) != 0xFF || (r=fis.read()) != 0xFF ) if( r == -1 ) return false; else throw new IllegalArgumentException("Bad header byte: "+r); int length = ((fis.read() & 0xFF) << 24) | ((fis.read() & 0xFF) << 16) | ((fis.read() & 0xFF) << 8) | (fis.read() & 0xFF); output.resize(length); fis.read(output.data,0,length); return true; }
public void setTo( GrowQueue_I8 original ) { resize(original.size); System.arraycopy(original.data, 0, data, 0, size()); }
public void setTo( GrowQueue_I8 original ) { resize(original.size); System.arraycopy(original.data, 0, data, 0, size()); }
public static void saveDepth( GrayU16 depth , String fileName , GrowQueue_I8 data ) throws IOException { File out = new File(fileName); DataOutputStream os = new DataOutputStream(new FileOutputStream(out)); String header = String.format("%d %d\n", depth.width, depth.height); os.write(header.getBytes()); data.resize(depth.width*depth.height*2); byte[] buffer = data.data; int indexOut = 0; for( int y = 0; y < depth.height; y++ ) { int index = depth.startIndex + y*depth.stride; for( int x = 0; x < depth.width; x++ , index++) { int pixel = depth.data[index]; buffer[indexOut++] = (byte)(pixel&0xFF); buffer[indexOut++] = (byte)((pixel>>8) & 0xFF); } } os.write(buffer,0,depth.width*depth.height*2); os.close(); }
public static void combine( List<String> fileNames , String outputName ) throws IOException { FileOutputStream fos = new FileOutputStream(outputName); GrowQueue_I8 buffer = new GrowQueue_I8(); for( String s : fileNames ) { File f = new File(s); FileInputStream fis = new FileInputStream(f); long length = f.length(); buffer.resize((int)length); // write out header fos.write(255); fos.write(255); fos.write(255); fos.write((byte)(length >> 24)); fos.write((byte)(length >> 16)); fos.write((byte)(length >> 8)); fos.write((byte)(length)); fis.read(buffer.data, 0, (int) length); fos.write(buffer.data,0,(int)length); } }
public static void parseDepth( String fileName , GrayU16 depth , GrowQueue_I8 data ) throws IOException { DataInputStream in = new DataInputStream(new FileInputStream(fileName)); String s[] = readLine(in).split(" "); int w = Integer.parseInt(s[0]); int h = Integer.parseInt(s[1]); int length = w*h*2; if( data == null ) data = new GrowQueue_I8(length); else data.resize(length); in.read(data.data,0,length); depth.reshape(w,h); UtilOpenKinect.bufferDepthToU16(data.data, depth); }
public static void from_3BU8_to_3PU8(ByteBuffer src , int srcOffset , int srcStride , Planar<GrayU8> dst , GrowQueue_I8 work ) { work.resize(dst.width*3); GrayU8 r = dst.getBand(0); GrayU8 g = dst.getBand(1); GrayU8 b = dst.getBand(2); int indexSrc = srcOffset; for (int y = 0; y < dst.height; y++) { src.position(indexSrc); src.get(work.data,0,work.size); int indexDst = dst.startIndex + dst.stride * y; for (int i = 0; i < work.size; indexDst++) { r.data[indexDst] = work.data[i++]; g.data[indexDst] = work.data[i++]; b.data[indexDst] = work.data[i++]; } indexSrc += srcStride; } }
public static void from_3BU8_to_3PF32(ByteBuffer src , int srcOffset , int srcStride , Planar<GrayF32> dst , GrowQueue_I8 work ) { work.resize(dst.width*3); GrayF32 r = dst.getBand(0); GrayF32 g = dst.getBand(1); GrayF32 b = dst.getBand(2); int indexSrc = srcOffset; for (int y = 0; y < dst.height; y++) { src.position(indexSrc); src.get(work.data,0,work.size); int indexDst = dst.startIndex + dst.stride * y; for (int i = 0; i < work.size; indexDst++) { r.data[indexDst] = work.data[i++] & 0xFF; g.data[indexDst] = work.data[i++] & 0xFF; b.data[indexDst] = work.data[i++] & 0xFF; } indexSrc += srcStride; } }
temp.resize(rgb.width*rgb.height*3); byte data[] = temp.data;
if( temp == null ) temp = new GrowQueue_I8(length); temp.resize(length);