Görüntü tanıma için kamera ön izlemesini kullanmak istiyorum. benim amaçlarım için, mümkün olduğunca yüksek önizleme çözünürlüğüne ihtiyacım var (ve aynı zamanda önizlemeyi kullanıcıya gösterir).Nasıl 720p Android Kamera Önizleme Verileri alırsınız?
SurfaceView öğesini genişleten ve PreviewSize öğesini 1280x720 olarak ayarlayan bir Önizleme sınıfı oluşturdum. ama sadece ilk 497.664 Bayt veri içeren (eşleştirme -
Benim Byte Dizisi b 1.382.400 Byte ve benim CameraPreviewCallback.onPreviewFrame() fonksiyonu bu 1382400 Bytes aldığıcamera = Camera.open();
parameters = camera.getParameters();
parameters.setPreviewSize(1280,720);
camera.setParameters(parameters);
byte[] b = new byte[camera.getParameters().getPreviewSize().width *
camera.getParameters().getPreviewSize().height *
ImageFormat.getBitsPerPixel(camera.getParameters().getPreviewFormat())/8];
camera.addCallbackBuffer(b);
camera.setPreviewCallbackWithBuffer(new CameraPreviewCallback());
try {
camera.setPreviewDisplay(this.getHolder());
camera.startPreview()
}
: Ben canlı Image almak için bir PreviewCallBack eklendi Bir 768x432 çözünürlük (HTC Desire)).
Ben 800x480 ekran çözünürlükleri (HTC Desire, LG Optimus 3D Samsung Galaxy S2, Samsung Galaxy Tab, ...) ile tüm farklı cihazlarda bu test etti. Kodumun çalıştığı tek cihaz HTC Desire HD.Tam 720p çözünürlüğünü bir Byte Dizisi olarak nasıl alacağını bilen var mı? "Bir şey" akıllı telefonun ekranına sığacak şekilde önizleme çözünürlüğünü azaltıyor gibi görünüyor.
Selamlar
Joern
Telefonunuzun 720p desteklediğinden emin misiniz? Logcat bir şey söylüyor mu ("çözünürlüğü ayarlayamaz" gibi)? – Lennart
Yep, 720p tüm cihazlarda önizleme boyutu olarak destekleniyor. Logcat özel bir şey söylemiyor - "bir şey" gibi görünüyor önizleme çözünürlüğünü sessizce azaltıyor. –
getPreviewSize() doğru boyutu döndürüyor mu? – Lennart