2017-02-14 7 views
13

मैंने इस दिन पर काम किया है। मेरे पास एक ओपनसीवी/जावाकैमेरा व्यू-आधारित प्रोजेक्ट है जो मैं एंड्रॉइड android.hardware.camera2.CaptureRequest ऑब्जेक्ट के साथ एकीकृत करने की कोशिश कर रहा हूं जिसका उपयोग मैं कैमरे की संवेदनशीलता को प्रकाश में नियंत्रित करने के लिए करता हूं।क्या एंड्रॉइड.hardware.camera2.CaptureRequest OpenCV के साथ उपयोग किया जा सकता है?

CameraBridgeViewBase.CvCameraViewListener2/JavaCameraView प्रोजेक्ट काम करता है (मैं स्क्रीन पर एक छवि देख सकता हूं), और CaptureRequest प्रोजेक्ट काम करता है (इसे भी देखें), लेकिन एक ही परियोजना में दो तकनीकों के संयोजन से एक बड़ी समस्या साबित हुई है।

क्या किसी ने भी इन दोनों तकनीकों को एक साथ काम करने के लिए प्राप्त किया है? मेरा लक्ष्य है कि कैमरे को कैप्चररवेस्ट (सीमित SENSOR_SENSITIVITY + SENSOR_EXPOSURE_TIME) के नियंत्रण में रखना है, लेकिन स्क्रीन के लिए एक ओपनसीवी साझा लाइब्रेरी के माध्यम से फ़िल्टर की गई स्ट्रीमिंग छवि दिखाने के लिए मैंने लिखा है।

कैमरे को नियंत्रित करने के लिए, मैं कुछ इस तरह उपयोग कर सकते हैं: पहले से

public class MyCoolScanner extends AppCompatActivity implements CameraBridgeViewBase.CvCameraViewListener2 { 
... 
@Override 
public Mat onCameraFrame(CameraBridgeViewBase.CvCameraViewFrame inputFrame) { 
    mRgba = inputFrame.rgba(); 

    OpenCVNative.myCoolLibrary(mRgba.getNativeObjAddr(),mGray.getNativeObjAddr()); 
    return mGray; 
} 

धन्यवाद:

 mCameraDevice.createCaptureSession(Arrays.asList(surface, mImageReader.getSurface()), 
       new CameraCaptureSession.StateCallback() { 
        @Override 
        public void onConfigured(@NonNull CameraCaptureSession cameraCaptureSession) { 
         // The camera is already closed 
         if (null == mCameraDevice) { 
          return; 
         } 
         long exposureTime = 66259688,frameDuration = 1000; 
         int sensitivity = 1512; 

         mCaptureSession = cameraCaptureSession; 
         try { 

          mPreviewRequestBuilder.set(CaptureRequest.CONTROL_AF_MODE, 
            CaptureRequest.CONTROL_AF_MODE_CONTINUOUS_PICTURE); 

          setAutoFlash(mPreviewRequestBuilder); 
          mPreviewRequestBuilder.set(CaptureRequest.CONTROL_AE_MODE, CaptureRequest.CONTROL_AE_MODE_OFF); 
          mPreviewRequestBuilder.set(CaptureRequest.SENSOR_EXPOSURE_TIME, Long.valueOf(exposureTime)); 
          mPreviewRequestBuilder.set(CaptureRequest.SENSOR_SENSITIVITY, Integer.valueOf(sensitivity)); 
          mPreviewRequestBuilder.set(CaptureRequest.SENSOR_FRAME_DURATION, Long.valueOf(frameDuration)); 

          mPreviewRequest = mPreviewRequestBuilder.build(); 
          mCaptureSession.setRepeatingRequest(mPreviewRequest, 
            mCaptureCallback, mBackgroundHandler); 


         } catch (CameraAccessException e) { 
          e.printStackTrace(); 
         }catch (Exception e) { 
          e.printStackTrace(); 
         } 
        } 

छवि धारा फ़िल्टर करने के लिए, मैं कुछ इस तरह उपयोग कर सकते हैं।

+0

मैं अगले कुछ दिनों से बंद हो जाऊंगा, लेकिन इस प्रश्न के जवाबों की जांच जारी रखेगा। – Brian

उत्तर

0

मेरा मानना ​​है कि OpenCV देशी रूप android.camera2

4

के साथ प्रयोग के एंड्रॉयड के साथ खुला सीवी के कार्यान्वयन प्राप्त करें समर्थन नहीं करता है, तो यह आपको मदद मिल सकती है।

Camera calibration With OpenCV

कैमरा अंशांकन - opencv 2.3.1 एंड्रॉयड

https://groups.google.com/forum/#!topic/android-opencv/xXtUvdA1E4M

https://fossies.org/dox/opencv-3.2.0/CameraCalibrationActivity_8java_source.html

+0

मैंने आपके द्वारा प्रदान किए गए लिंक से कोड नमूने देखे, लेकिन वास्तव में कैमरे के लिए कोई "अंशांकन" नहीं हो रहा है, केवल फ्रेम पर सीमा लागू करने वाला कोई व्यक्ति, जो मेरी मदद नहीं करता है। मुझे अभी भी ओपनसीवी का उपयोग करते हुए कैमरे की संवेदनशीलता बढ़ाने और घटाने की आवश्यकता है। मुझे ओपनसीवी द्वारा प्रदान की गई सीपीपी क्षमता की आवश्यकता है, लेकिन एंड्रॉइड.hardware.camera2.CaptureRequest द्वारा प्रदान की गई कैमरा अंशांकन क्षमता। – Brian

+0

हाय! क्या आपने इस मुद्दे को हल किया? कैमरा 2 मॉड्यूल – hagor

0

जवाब नहीं है, OpenCV, android.camera2 साथ काम नहीं करेंगे किसी तरह का बिना नहीं चारों ओर घिरा हुआ काम।

+0

के साथ एक ही समस्या है यहां एक विस्तृत ट्यूटोरियल है: http://people.oregonstate.edu/~robinsti/CS_496/Tutorial/ –

+0

गो बीवर! लेकिन असल में, मैं उस ट्यूटोरियल में नहीं जा सका क्योंकि यह कुछ सुरक्षा के पीछे बंद है। एक 403 त्रुटि अनुमति त्रुटि मिली। – Brian

+0

संग्रह.org को रीस्क्यू करने के लिए: https://web.archive.org/web/20160429162315/http://people.oregonstate.edu/~robinsti/CS_496/Tutorial। कोड वास्तव में [गिटहब पर] है (https://github.com/friendoflore/OpenCv-for-Android-color-Detection) –

संबंधित मुद्दे