android开发皮肤检测,android – 检测皮肤和捕获图像
更新1
我知道inRange函數的作用.但我不想應用蒙版并用膚色顯示新圖像.我想要做的是知道圖像是否包含膚色并覆蓋更大的區域.
我想做的事
我想在邊界內檢測到手指時拍攝照片.它的尺寸是已知的.
苦苦掙扎
>在本機代碼中處理圖像數據.
>在實時相機中檢測皮膚,因此無論何時聚焦特定區域并檢測到皮膚,都應拍攝快照
我做了什么
我正在使用JNI Layer來執行操作.我可以使用this tutorial從圖像數據中獲取Mat,但不知道如何操作poutPixels.格式是NV21,我不知道如何對它進行操作.
我需要裁剪圖像然后檢測圖像中是否存在皮膚.我已經成功地將圖像裁剪到所需的尺寸,但沒有任何線索可以向前移動以檢測皮膚.我希望這個方法返回true或false.
這是代碼:
jbyte * pNV21FrameData = env->GetByteArrayElements(NV21FrameData,0);
jint * poutPixels = env->GetIntArrayElements(outPixels,0);
Mat mNV(height,width,CV_8UC3,(unsigned char*)pNV21FrameData);
Mat finalImage(height,(unsigned char*) poutPixels);
jfloat wScale = (float) width/screenWidth;
jfloat hScale = (float) height/screenHeight;
float temp = rectX * wScale;
int x = (int) temp;
temp = rectY * hScale;
int y = (int) temp;
int cW = (int) (width * wScale);
int cH = (int) (height * hScale);
cH = cH/2;
Rect regionToCrop(x,y,cW,cH);
mNV = mNV(regionToCrop);
finalImage = finalImage(regionToCrop);
//detect skin and return true or false
我已經閱讀了關于inRange的功能,但我不知道如何檢查是否有皮膚.
問題
>我是否在正確的道路上繼續前進?
>我得到的圖像格式是NV21.它是8UC1還是8UC3?
>如何從這里開始檢測皮膚?
任何幫助表示贊賞.
總結
以上是生活随笔為你收集整理的android开发皮肤检测,android – 检测皮肤和捕获图像的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: tpg色卡查询_PANTONE潘通TPG
- 下一篇: 如何更改SQL Server 2005的