美文网首页
Android Opencv 显示在surface错乱问题

Android Opencv 显示在surface错乱问题

作者: luowenbin | 来源:发表于2020-11-01 11:07 被阅读0次

    window_buffer.bits的数据不是根据window_buffer.width而是根据window_buffer.stride来决定的,
    而目标区域要绘制在window_buffer.width x window_buffer.height 区域内,因此要设置ROI。

    
        ANativeWindow_setBuffersGeometry(window, rgba.cols, rgba.rows, WINDOW_FORMAT_RGBA_8888);
    
        ANativeWindow_Buffer window_buffer;
        if (ANativeWindow_lock(window, &window_buffer, nullptr)) {
            ANativeWindow_release(window);
            window = nullptr;
            return;
        }
        long millis = currentTimeMillis();
        Mat winBuffer(window_buffer.height,window_buffer.stride,CV_8UC4,window_buffer.bits);
        Mat roi(winBuffer,Rect(0,0, rgba.cols, rgba.rows));
        rgba.copyTo(roi);
        LOGD("Cost time %d ms",(currentTimeMillis()-millis));
    

    相关文章

      网友评论

          本文标题:Android Opencv 显示在surface错乱问题

          本文链接:https://www.haomeiwen.com/subject/wwuyvktx.html