简体   繁体   English

如何使用WebSocketServer提高Java Computer Vision的性能?

[英]How can I increase performance of Java Computer Vision using WebSocketServer?

@OnWebSocketMessage
public void onMessage(byte[] data, int offset, int length) throws IOException {                          

    //convert packet to output stream
    ByteArrayOutputStream byteArrayImg = new ByteArrayOutputStream();
    byteArrayImg.write(data, offset, length);
    //convert output stream to bytearray
    byte[] byteArray = byteArrayImg.toByteArray();
    //creating iplimage instance from byte array
    iplimage = cvDecodeImage(cvMat(1, byteArray.length,CV_8UC1, new BytePointer(byteArray)));
    /* HERE GOES FACE RECOGNITION OR SOMETHING */
    //iplimage back to outputstream
    ByteArrayOutputStream bout = new ByteArrayOutputStream();
    BufferedImage imgb = iplimage.getBufferedImage();
    ImageIO.write(imgb, "png", bout);
    //sendig back echo packet to javascript client
    ByteBuffer buf = ByteBuffer.wrap(bout.toByteArray());
    this.session.getRemote().sendBytes(buf);
}

I'm trying to convert a webcam stream (byte array received from javascript client) to an IplImage object so that I can work with JavaCV. 我正在尝试将网络摄像头流(从javascript客户端接收到的字节数组)转换为IplImage对象,以便可以使用JavaCV。 I wrote this code that takes frames from my webcam and sends back an echo but the performance is very slow (10 FPS). 我编写了这段代码,从我的网络摄像头获取帧并发送回声,但性能非常慢(10 FPS)。 I'm really new to computer vision and working with images, maybe I'm doing something wrong. 我真的是计算机视觉和图像处理的新手,也许我做错了什么。 If you have any ideas at all that could speed it up, I'd like to hear them. 如果您有任何想法可以加快速度,我想听听他们的意见。

Try replacing this code 尝试替换此代码

ByteArrayOutputStream byteArrayImg = new ByteArrayOutputStream();
byteArrayImg.write(data, offset, length);
byte[] byteArray = byteArrayImg.toByteArray();

with an Arrays.copyOfRange(..) call. Arrays.copyOfRange(..)调用。 This should greatly reduce the amount of data movement required. 这将大大减少所需的数据移动量。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM