最近研究基于android摄像头图像识别。
流程:通过摄像头返回的得NV21转换为BItmap惠普遍历每个像素,获得像素信息为实时图像识别奠基。
遍历每帧算法为:
for ( i = 0; i<rowsPlusOne; i++)
{
for (j = 0; j<colsPlusOne; j++)
{
int color = bt.getPixel(i, j);//bt是摄像头传回得图片转换为Bitmap
float[] hsv = new float[3];
Color.colorToHSV(color, hsv);
float h =(float)(Math.round(hsv[0]*100))/100;
float s = (float)(Math.round(hsv[0]*100))/100;
float v = (float)(Math.round(hsv[0]*100))/100;
}
}
发现效率很低下
对1280*720得图片遍历1秒也到遍历不了一张。
质量缩减一半,也要600ms左右才能遍历一帧。
就算缩减到64*36也就是二十分之一时,此时清晰度导致识别度大大降低,但也要40-60ms一帧。每秒才十五六帧。根本达不到实时识别得要求。
尝试使用getpixels,但效果并不明显,最多最多20%得效率提高,还是达不到要求。
请问有没有什么算法可以解决该效率问题。
或者其他思路。
不用opencv得原因主要是想好好琢磨下。