Kamera çerçevelerini gerçek zamanlı olarak işleyebilecek bir Android uygulaması oluşturmaya çalışıyorum. Başlamak için sadece kameranın gördüklerinin gri tonlamalı bir versiyonunu görüntülemek istiyorum. Uygun değerleri onPreviewFrame
yöntemindeki bayt dizisinden ayıklamayı başardım. byte[]
çerçeve dizisininAndroid kamera çerçeveleri gerçek zamanlı olarak işleniyor
byte[] pic;
int pic_size;
Bitmap picframe;
public void onPreviewFrame(byte[] frame, Camera c)
{
pic_size = mCamera.getParameters().getPreviewSize().height * mCamera.getParameters().getPreviewSize().width;
pic = new byte[pic_size];
for(int i = 0; i < pic_size; i++)
{
pic[i] = frame[i];
}
picframe = BitmapFactory.decodeByteArray(pic, 0, pic_size);
}
ilk [width*height]
değerleri parlaklık (gri tonlama) değerler şunlardır: Aşağıda benim yalnızca bir kod snippet'tir. Onları ayıkladıktan sonra, bunları bir görüntü olarak ekranda nasıl görüntüleyebilirim? Onun bir 2D dizisi de değil, bu yüzden genişliği ve yüksekliği nasıl belirleyebilirim?
Bu, YUV görüntüsünü bir ara JPEG ile Bitmap'e dönüştürmek için mi oluyor? Zor bir gerçek zamanlı çözüm – Rekin
Bu konuda şiddetle tavsiye ediyorum. Android'deki OpenCV, projeye karmaşıklık katacak ve ayrıca 10mb boyutunda olan yerel kütüphanelere de ihtiyaç duyacaktır. Android, OP'nin gerektirdiği şeyleri gerçekleştirmek için tüm olanaklara sahip. OpenCV harika bir kütüphanedir, fakat bu durum için aşırı bir oyundur. – protectedmember