欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

Android將camera獲取到的YuvData在jni中轉(zhuǎn)化為Mat方法

Android中可以通過(guò)camera獲取圖像,并實(shí)時(shí)處理,不同的手機(jī)camera支持的的圖像格式不同,可以采用getCameraPreviewFormat來(lái)得到preview支持的圖像編碼格式,Android默認(rèn)使用NV21(yuv420sp)的圖像格式,因?yàn)榇蟛糠质謾C(jī)都支持。

創(chuàng)新互聯(lián)自2013年起,是專業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項(xiàng)目成都網(wǎng)站設(shè)計(jì)、網(wǎng)站制作網(wǎng)站策劃,項(xiàng)目實(shí)施與項(xiàng)目整合能力。我們以讓每一個(gè)夢(mèng)想脫穎而出為使命,1280元長(zhǎng)寧做網(wǎng)站,已為上家服務(wù),為長(zhǎng)寧各地企業(yè)和個(gè)人服務(wù),聯(lián)系電話:13518219792

為了達(dá)到實(shí)時(shí)處理的目的,很多時(shí)候我們將得到的yuv數(shù)據(jù)直接傳入jni中的c++使用,減少上層轉(zhuǎn)化圖像格式的過(guò)程yuv420本身屬于單通道圖像,若圖像處理中只需要獲取灰度圖像,可以在c++中直接通過(guò)Mat構(gòu)造函數(shù)構(gòu)造生成灰度圖像,代碼如下:

/*
* ImageProcessing.cpp
*  實(shí)時(shí)顯示canny算子結(jié)果
*/
#include <jni.h>
 
#include <opencv2/core/core.hpp>
#include <opencv2/imgproc/imgproc_c.h>
#include <opencv2/opencv.hpp>
 
 
using namespace std;
using namespace cv;
 
 
Mat * mCanny = NULL;
 
extern "C"
jboolean
Java_my_project_MyRealTimeImageProcessing_CameraPreview_ImageProcessing(
		JNIEnv* env, jobject thiz,
		jint width, jint height,
		jbyteArray NV21FrameData, jintArray outPixels)
{
	jbyte * pNV21FrameData = env->GetByteArrayElements(NV21FrameData, 0); //輸入yuv數(shù)據(jù) 
	jint * poutPixels = env->GetIntArrayElements(outPixels, 0);	//輸出結(jié)果的int數(shù)據(jù)
	if ( mCanny == NULL )
	{
		mCanny = new Mat(height, width, CV_8UC1);
	}
	Mat mGray(height, width, CV_8UC1, (unsigned char *)pNV21FrameData);	//構(gòu)建灰度圖時(shí)構(gòu)造函數(shù)
	Mat mResult(height, width, CV_8UC4, (unsigned char *)poutPixels);
	IplImage srcImg = mGray;
	IplImage CannyImg = *mCanny;
	IplImage ResultImg = mResult;
 
	cvCanny(&srcImg, &CannyImg, 80, 100, 3);
	cvCvtColor(&CannyImg, &ResultImg, CV_GRAY2BGRA);
	env->ReleaseByteArrayElements(NV21FrameData, pNV21FrameData, 0);
	env->ReleaseIntArrayElements(outPixels, poutPixels, 0);
	return true;
}

若圖像處理時(shí)需要彩色圖像,則需要先將nv21類型的數(shù)據(jù)轉(zhuǎn)化為yuv格式,再將yuv轉(zhuǎn)化為BGR彩色圖像,構(gòu)造yuv時(shí)的構(gòu)造函數(shù)和直接構(gòu)造灰度圖有些不同,在YUV420中一個(gè)像素對(duì)應(yīng)一個(gè)Y,一個(gè)2*2的小方塊對(duì)應(yīng)一個(gè)UV,對(duì)于所有YUV420圖像,它們的Y值排列是完全相同的,因?yàn)橹挥衁的圖像就是灰度圖像。YUV420sp與YUV420p的數(shù)據(jù)格式它們的UV排列在原理上是完全不同的。420p它是先把U存放完后,再存放V,也就是說(shuō)UV它們是連續(xù)的。而420sp它是UV、UV這樣交替存放的。對(duì)于一個(gè)YUV420在內(nèi)存中存放的大小:

Y = width*height

U = Y/4

v = Y/4

所以獲取灰度圖只需要Y的數(shù)據(jù)大小就可以,所以構(gòu)造函數(shù)中寬高都是圖像的寬高,而要獲取YUV彩色圖像則需要獲取的內(nèi)存長(zhǎng)度為width*height*3/2

Android將camera獲取到的YuvData在jni中轉(zhuǎn)化為Mat方法

Android將camera獲取到的YuvData在jni中轉(zhuǎn)化為Mat方法

構(gòu)造函數(shù)中圖像高度需再加上1/2*height,代碼如下:

JNIEXPORT int JNICALL Java_com_ProjectName_nativecaller_ClassName_readYUV420SP(JNIEnv *env, jclass clz, jbyteArray yuv,jint len,jint height,jint width)
{
 
	jbyte * pBuf = (jbyte*)env->GetByteArrayElements(yuv, 0);
 
	Mat image(height + height/2,width,CV_8UC1,(unsigned char *)pBuf);	//注意這里是height+height/2
	Mat mBgr;
	cvtColor(image, mBgr, CV_YUV2BGR_NV21);
	imwrite("/mnt/sdcard/readYuv.jpg",mBgr);
	env->ReleaseByteArrayElements(yuv, pBuf, 0);  
	return 0;
}

以上這篇Android將camera獲取到的YuvData在jni中轉(zhuǎn)化為Mat方法就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持創(chuàng)新互聯(lián)。

文章題目:Android將camera獲取到的YuvData在jni中轉(zhuǎn)化為Mat方法
文章路徑:http://aaarwkj.com/article22/ipdjcc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供App設(shè)計(jì)品牌網(wǎng)站制作、外貿(mào)建站外貿(mào)網(wǎng)站建設(shè)、定制開發(fā)、微信公眾號(hào)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

外貿(mào)網(wǎng)站建設(shè)
精品国产91久久粉嫩| 欧美大片免费久久精品| 天天躁日日躁夜夜躁夜夜| 欧美激情一区二区三区蜜桃| 亚洲欧美天堂一区二区| 丰满人妻侵犯中文字幕| 久久久久精品激情三级| 日本乱码中文字幕在线观看| 自拍偷拍视频欧美第一页| 天天操天天干夜夜射| 三级视频一区二区三区| 97超碰97资源在线| 日韩欧美国产麻豆91在线精品| 欧美色一区二区三区四区| 和富婆啪啪一区二区免费看| 丁香六月婷婷激情啪啪综合| 亚洲日本在线观看一区| 日本中文有码在线观看| 亚洲欧美天堂一区二区| 午夜精品一区二区亚洲| 尤物在线观看视频播放| 色日韩在线观看视频| 亚洲天堂成人av蜜臀| 国产我不卡在线观看免费| 日韩色欧美色国产精品| 99中文字幕国产精品| 亚洲综合中文字幕精品| 国产超碰久久久久久精品| 亚洲欧美制服另类国产| 日本精品女优一区二区三区四区| 久久久亚洲福利精品午夜 | 亚洲综合日韩丝袜人妻| 香蕉夜夜草草久久亚洲香蕉| 亚洲黄色成人在线观看| 亚洲经典日韩欧美一区| 亚洲激情粉嫩中文字幕| 欧美aⅴ一区二区三区| 久久精品无人区乱码一区二区| 亚洲福利影院一区久久| 中文字幕日本精品人妻在线| 一区二区三区免费在线观看视频|