我已经为此工作了好几天了.我有一个基于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手机获取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) 我的问题是:我有可能将大文件存储在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)
由于客户端应用程序,数据流也不是一个真正的选项.
有任何想法吗?
我对 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)
那么我需要如何处理我的查询以更改并在输出周围放置外部标签?