本文主要是介绍实现将YUV 格式数据转换成 RGBA 格式数据的Native层代码,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
实现将YUV
格式数据转换成 RGBA
格式数据的Native层代码
// Just show the plain camera image without modifying it.
JNIEXPORT void JNICALL Java_com_Cartoonifier_CartoonifierView_ShowPreview(JNIEnv* env, jobject,jint width, jint height, jbyteArray yuv, jintArray bgra)
{// Get native access to the given Java arrays.jbyte* _yuv = env->GetByteArrayElements(yuv, 0);jint* _bgra = env->GetIntArrayElements(bgra, 0);// Prepare a cv::Mat that points to the YUV420sp data.Mat myuv(height + height/2, width, CV_8UC1, (uchar *)_yuv);// Prepare a cv::Mat that points to the BGRA output data.Mat mbgra(height, width, CV_8UC4, (uchar *)_bgra);// Convert the color format from the camera's// NV21 "YUV420sp" format to an Android BGRA color image.cvtColor(myuv, mbgra, CV_YUV420sp2BGRA);// OpenCV can now access/modify the BGRA image if we want ...// Release the native lock we placed on the Java arrays.env->ReleaseIntArrayElements(bgra, _bgra, 0);env->ReleaseByteArrayElements(yuv, _yuv, 0);
}
原文网址:
https://segmentfault.com/a/1190000000738231
Differences between OpenCV JavaCV and OpenCV4Android
这篇关于实现将YUV 格式数据转换成 RGBA 格式数据的Native层代码的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!