小编Bri*_*ian的帖子

android.hardware.camera2.CaptureRequest可以与OpenCV一起使用吗?

我已经为此工作了好几天了.我有一个基于OpenCV/JavaCameraView的项目我试图与android.hardware.camera2.CaptureRequest我用来控制相机对光的敏感度的Android 对象集成.

CameraBridgeViewBase.CvCameraViewListener2/JavaCameraView项目工程(我可以在屏幕上看到的图像),并在CaptureRequest项目工程(看到这一点,太),但是这两种技术在一个单一的项目组合已证明是一个很大的问题.

有没有人让这两种技术一起工作?我的目标是让摄像头处于CaptureRequest(有限的SENSOR_SENSITIVITY + SENSOR_EXPOSURE_TIME)的控制之下,但屏幕显示通过我写的OpenCV共享库过滤的流图像.

要控制相机,我可以使用这样的东西:

        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) { …
Run Code Online (Sandbox Code Playgroud)

android opencv android-camera opencv4android

14
推荐指数
1
解决办法
1421
查看次数

如何在拍摄照片时通过Java获取Android手机摄像头的曝光补偿等级?

如何在拍摄照片时从Android手机获取AutoExposureCompensation等级(亮度)?

我可以拍张照.我可以访问摄像机的参数,包括曝光补偿(当我检查时总是为零),但我需要在拍摄照片时获得AE补偿等级,而不是之前和之后.

背景:我希望在特定时间拍摄的所有照片都使用相同的AE补偿等级拍摄照片.我不希望Android相机通常会对曝光级别或白平衡进行数百次调整.我想获得一次,并为所有后续照片设置相同的设置.

我已经尝试过使用"意图"来拍照,OpenCV,碎片等.我似乎无法使用其中任何一种获得AE补偿设置.这是我尝试过的最新代码,从JavaCameraView的扩展版本开始:

import org.opencv.android.JavaCameraView;
import android.content.Context;
import android.hardware.Camera;
import android.hardware.Camera.PictureCallback;
import android.hardware.Camera.Size;
import android.util.AttributeSet;
import android.util.Log;
@SuppressWarnings("deprecation")
public class NewJavaCameraView extends JavaCameraView implements PictureCallback {

public int getExposureCompensation(){
    return mCamera.getParameters().getExposureCompensation();
}
 @SuppressWarnings("deprecation")
 public void takePicture(final String fileName) {
    Log.i(TAG, "Taking picture");
    this.mPictureFileName = fileName;

    Camera.Parameters params = mCamera.getParameters();
    int exposureComp = params.getExposureCompensation();
    mCamera.setPreviewCallback(null);

    // PictureCallback is implemented by the current class
    int otherexposureComp =this.getExposureCompensation();
    mCamera.takePicture(null, null, this);
}

 @SuppressWarnings("deprecation")
 @Override
 public void onPictureTaken(byte[] data, Camera camera) …
Run Code Online (Sandbox Code Playgroud)

java android opencv javacameraview autoexposurecompensation

11
推荐指数
1
解决办法
2157
查看次数

如何只选择一部分巨大的二进制文件(文件)?

我的问题是:我有可能将大文件存储在SQL Server 2008上的二进制(图像)字段中(> 1GB).

如果我使用常规select语句返回整个二进制文件,则查询需要一分多钟才能将结果返回到我的.NET程序并且我的客户端应用程序超时.我正在寻找的是TSQL代码,它将限制返回的数据大小(可能是300mb),允许我迭代剩余的块并防止超时.

这必须发生在SQL查询中,而不是在返回数据后的处理中.

我已经尝试过SubString,MS说它可以处理二进制数据,但我得到的最多只有8000字节.我试过的最后一件事看起来像这样:

select substring(Package,0,300000000) 'package', ID from rplPackage where ID=0
--where package is the huge binary stored in a image field
Run Code Online (Sandbox Code Playgroud)

由于客户端应用程序,数据流也不是一个真正的选项.

有任何想法吗?

sql t-sql sql-server blob sql-server-2008

5
推荐指数
2
解决办法
3126
查看次数

如何从 Oracle 中获取格式化的 XML

我对 Oracle 缺乏经验,无法将数据导出为 XML。我已经设法让这个查询工作,但 XML 的格式似乎是固定的,对我不起作用。这是查询:

SELECT value(em).getClobVal() AS "output"
    FROM table(XMLSequence(Cursor
      (   
          SELECT * FROM UserMain
       )
)) em
Run Code Online (Sandbox Code Playgroud)

我从中得到的是:

  <ROW><STATUS>Active</STATUS><NAME>Joe Smith<NAME><PHONE>234-2345</PHONE>...</ROW>
  <ROW><STATUS>Inactive</STATUS><NAME>Sally Smith<NAME><PHONE>234-4444</PHONE>...</ROW>
  etc.
Run Code Online (Sandbox Code Playgroud)

但我想要的是这样,在输出的外部带有 XML 标记“ROWS”,如下所示:

  <ROWS>
      <RECORD><STATUS>Active</STATUS><NAME>Joe Smith<NAME><PHONE>234-2345</PHONE>...</RECORD>
      <RECORD><STATUS>Inactive</STATUS><NAME>Sally Smith<NAME><PHONE>234-4444</PHONE>...</RECORD>
      etc.
  </ROWS>
Run Code Online (Sandbox Code Playgroud)

那么我需要如何处理我的查询以更改并在输出周围放置外部标签?

xml sql oracle

2
推荐指数
1
解决办法
5081
查看次数