Ask Your Question

Revision history [back]

click to hide/show revision 1
initial version

Ensuring compatibility across Android devices

We have a consumer-targeted Android app for which OpenCV support is critical. We need it to work on as many devices as possible. We've been unable to capture images on about 40% of the devices we've tried, apparently due to cv::VideoCapture's use of vendor-specific APIs.

Questions:

  1. Is this (~40%) failure rate in line with what others have seen?
    • Devices that fail: Motorola Droid/X/RAZR, HTC Evo 4G, and (sometimes) Samsung Galaxy S III
  2. What can we do to maximize compatibility across consumer devices?
    • For example, can we capture images using the Android Camera API, convert them to OpenCV-style images, and supply them to our OpenCV processing code, thereby avoiding cv::VideoCapture altogether?
  3. How can we identify devices that will or won't work?
    • Is there a list of Android devices and their support of OpenCV available somewhere?
    • Does the OpenCV team have access to a variety of test devices?

More info:

  • We use static initialization of the OpenCV libraries. Our app is intended for consumers (teachers, specifically), and expecting them to download 3 items from Google Play (our app + OpenCV Manager + OpenCV library) is a no-go.
  • For now, we do all image capture and processing operations in native code.

Ensuring compatibility across Android devices

We have a consumer-targeted Android app for which OpenCV support is critical. We need it to work on as many devices as possible. We've been unable to capture images on about 40% of the devices we've tried, apparently due to cv::VideoCapture's use of vendor-specific APIs.

Questions:

  1. Is this (~40%) failure rate in line with what others have seen?
    • Devices that fail: Motorola Droid/X/RAZR, HTC Evo 4G, and (sometimes) Samsung Galaxy S III
  2. What can we do to maximize compatibility across consumer devices?
    • For example, can we capture images using the Android Camera API, convert them to OpenCV-style images, and supply them to our OpenCV processing code, thereby avoiding cv::VideoCapture altogether?
  3. How can we identify devices that will or won't work?
    • Is there a list of Android devices and their support of OpenCV available somewhere?
    • Does the OpenCV team have access to a variety of test devices?

More info:

  • We use static initialization of the OpenCV libraries. Our app is intended for consumers (teachers, specifically), and expecting them to download 3 three items from Google Play (our app + OpenCV Manager + OpenCV library) is a no-go.
  • For now, we do all image capture and processing operations in native code.
click to hide/show revision 3
Remove OpenCV binaries from list of required downloads for OpenCV Manager

Ensuring compatibility across Android devices

We have a consumer-targeted Android app for which OpenCV support is critical. We need it to work on as many devices as possible. We've been unable to capture images on about 40% of the devices we've tried, apparently due to cv::VideoCapture's use of vendor-specific APIs.

Questions:

  1. Is this (~40%) failure rate in line with what others have seen?
    • Devices that fail: Motorola Droid/X/RAZR, HTC Evo 4G, and (sometimes) Samsung Galaxy S III
  2. What can we do to maximize compatibility across consumer devices?
    • For example, can we capture images using the Android Camera API, convert them to OpenCV-style images, and supply them to our OpenCV processing code, thereby avoiding cv::VideoCapture altogether?
  3. How can we identify devices that will or won't work?
    • Is there a list of Android devices and their support of OpenCV available somewhere?
    • Does the OpenCV team have access to a variety of test devices?

More info:

  • We use static initialization of the OpenCV libraries. Our app is intended for consumers (teachers, specifically), and expecting them to download three items an additional item from Google Play (our app + OpenCV Manager + OpenCV library) (OpenCV Manager) is a no-go.
  • For now, we do all image capture and processing operations in native code.