Setting exposure values on android with OpenCV

Hello, I finished watching 254’s presentation recently and have begun working on a similar android app where it would find the target and send the data back to the roborio. I have opencv running on my phone and can run opencv functions fine.

What i am having trouble with is setting the exposure / iso values from within the code. I am trying to use CaptureRequest.set() and the app instantly crashes saying:

AndroidRuntime: FATAL EXCEPTION: Thread-3171

java.lang.NullPointerException: Attempt to invoke virtual method 'void android.hardware.camera2.CaptureRequest$Builder.set(android.hardware.camera2.CaptureRequest$Key, java.lang.Object)' on a null object reference

My code is here:

Any help is appreciated,
Drew (Team 2053)

Looks like you aren’t constructing mPreviewRequestBuilder before you use it.

Not to get of topic but could you link the video. I’d be interested in watching it.

Here you go:

And the slides:

Also, I am new to android development and am wondering how I would construct the previewbuilder. My instinct tells me that going down this route opens a camera and changing the exposure would be easier this way, but then letting that photo stream into the opencv code would be challenging. Would opening the camera there prevent opencv from accessing it?


You want to use createCaptureRequest()