我在 3D 中执行一些图像处理任务,但遇到了问题。
我使用一个模拟器,它为我提供了一种特殊的相机,它可以使用相机图像中该点的像素来判断相机位置与任意点之间的距离。例如,我可以获得相机和放置在像素 21:34 中的物体之间的距离。
现在我需要计算相机图像中两个任意像素之间的真实距离。当相机垂直放置并放置在场地上方并且所有物体都在地面上时,这很容易,但当相机水平放置时,图像中物体的深度是不同的。
那么,我该怎么办呢?
所以我有一个非常简单的情况,地平面基本上是 y=0 的位置,并且我想始终将相机保持在地面上方。我还想要感觉直观(并且与触摸兼容)的良好控件,并且我发现 OrbitControls.js 似乎最适合此目的,还因为我可以通过将 maxPolarAngle 设置为小于或等于 Math.js 的值来轻松限制极角。 PI/2(四分之一圈)。
尽管如此,即使这样做,用户也可以在地面以下平移,除非完全禁用平移(我不想这样做)。手动限制以使 y 永远不会变为负数感觉很奇怪,但我认为只需忽略 y 轴上的任何更改,例如将第 165 行(panUp 函数)更改为以下内容
panOffset.set( te[ 4 ], 0, te[ 6 ] );
panOffset.normalize();
Run Code Online (Sandbox Code Playgroud)
导致了一个快速而肮脏的解决方案,满足了我的要求。
但现在用户只能通过缩放来改变相机高度。
你能想到更好的解决方案吗?也许这个帖子可以作为官方解决方案的深思熟虑,我确信我不会是唯一受益于这种解决方案的人。
/编辑:我一开始没有标准化偏移向量,这导致了另一个问题,现在已更改。
我的公司正在尝试找出如何将我们当前的相机系列转变为符合 ONVIF 标准的相机。
我找到的是规范文档和一堆 WSDL 文件。但到目前为止我所看到的一切似乎都在建立事物的“客户端”。
我正在尝试创建一个中间件服务,以便我们现有的摄像机可以支持 ONVIF。
WSDL 文件是否同时用于客户端和设备?
公司如何对符合 ONVIF 标准的摄像机进行编程?我们的是 PTZ,PTZ WSDL 是我要找的吗?
服务设备端如何启动。尽管该规范涵盖了所有内容,但对于该标准的新开发人员来说,它的编写效果并不好。
请帮助我弄清楚如何将 C++ 中的嵌入式 Linux 相机转换为符合 ONVIF 的相机。开发人员是否使用 WSDL 来实现此目的?
谢谢你!
在相机模式(AVCaptureVideoPreviewLayer)下,我成功捕获了照片。我想向用户表明这一事实 - 意思是向他展示突然的黑色闪光和咔哒声 - 类似于他自己拍照时的体验。
我怎么做?是否有一些内置功能可以做到这一点?
谢谢
我的 FPB 低 ~5,我在不同的相机 logitech c270 和 logitech 9000 上检查了此代码,情况相同。
我完成了有关关闭右灯等的所有提示。
import urllib.request as urllib
import cv2
import numpy as np
import time
while True:
# Use urllib to get the image and convert into a cv2 usable format
cap = cv2.VideoCapture(0)
width = int(cap.get(cv2.CAP_PROP_FRAME_WIDTH))
hiegh = int(cap.get(cv2.CAP_PROP_FRAME_HEIGHT))
ret, frame = cap.read()
# put the image on screen
cv2.imshow('Webcam', frame)
if cv2.waitKey(1) & 0xFF == 27:
break
cap.release()
cv2.destroyAllWindows()
Run Code Online (Sandbox Code Playgroud)
我应该怎么做才能提高 FPS?
在 iOS13 发布之后,我正在使用 Cordova 测试混合应用程序。启动相机非常慢,并生成以下内容:
================================================== ================
主线程检查器:在后台线程上调用的 UI API:-[UIImagePickerController init]
PID:1347,TID:618928,线程名称:(无),队列名称:com.apple.root.default-qos,QoS:0
回溯:
4 0x0000000100f1bba0 +[CDVCameraPicker createFromPictureOptions:] + 124
5 0x0000000100f15d54 -[CDVCamera showCameraPicker:withOptions:] + 108
6 0x0000000100f15570 __25-[CDVCamera takePicture:]_block_invoke_2 + 336
7 AVFoundation 0x00000001b76178f8 2BC0C357-314E-3AE8-B006-C28528B87512 + 710904
8 TCC 0x00000001b35dfbf8 85A762AF-99DB-3B4C-B24B-09600CC17196 + 7160
9 TCC 0x00000001b35e3de4 85A762AF-99DB-3B4C-B24B-09600CC17196 + 24036
10 libxpc.dylib 0x00000001acfe3804 79A1F1AD-9CB4-3334-91D9-E1ED6B1032A3 + 104452
11 libxpc.dylib 0x00000001acfd72c4 79A1F1AD-9CB4-3334-91D9-E1ED6B1032A3 + 53956
12 libdispatch.dylib 0x000000010109b3b4 _dispatch_client_callout3 + 20
13 libdispatch.dylib 0x00000001010b7000 _dispatch_mach_msg_async_reply_invoke + 392
14 libdispatch.dylib 0x00000001010ada8c _dispatch_kevent_worker_thread + 1436
15 …
我使用这些代码拍照并将照片广播到画廊,它可以工作。
我发现我的广播功能使用MediaStore.Images.ImageColumns.DATA和Intent.ACTION_MEDIA_SCANNER_SCAN_FILE,而这些已被弃用!
如何在不使用MediaStore.Images.ImageColumns.DATA和Intent.ACTION_MEDIA_SCANNER_SCAN_FILE.
谢谢你。
// set open camera button.
private void setCameraButton() {
cameraBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
ActivityCompat.requestPermissions(PostActivity.this, mPermissionList, CAMERA_REQUEST_PERMISSION);
}
});
}
@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
switch (requestCode){
case 100: // camera.
if(grantResults.length > 0){
if (grantResults[0] == PackageManager.PERMISSION_GRANTED)
openCameraIntent();
else
Toast.makeText(this, "Please set permissions.", Toast.LENGTH_SHORT).show();
}
break;
...
}
}
private void openCameraIntent() { …Run Code Online (Sandbox Code Playgroud) 我正在开发 Flutter 应用程序。我需要相机功能并决定为此使用相机插件。我将纵横比设置为 3:4,但图像扭曲且小于应有的尺寸。我认为规模有问题。设置相机纵横比(即 3:4)的正确方法是什么?
final size = MediaQuery.of(context).size;
final deviceRatio = size.width / size.height;
final aspectRatio=3/4;
Transform.scale(
scale: controller.value.aspectRatio / deviceRatio,
child: Center(
child: AspectRatio(
aspectRatio: aspectRatio,
child: CameraPreview(controller),
)
),
)
Run Code Online (Sandbox Code Playgroud) 我使用设备的默认相机在我的应用程序中捕获照片。当我使用 android 10 及以下版本时,一切正常。但是当我在 android 11 中使用相机时,就无法在应用程序中使用了。你能帮我解决这个问题吗。
我想在相机打开之前显示一条消息。
现在用户单击一个按钮,消息显示 1 秒钟,然后相机立即打开。一旦我关闭相机,对话框仍然可见。
我希望只有在您单击警报消息上的“确定”后才能打开相机,并且一旦您关闭相机,就不再显示该消息。
//Button Picture
cameraBtn.setOnClickListener {
showDialog()
pb.visibility = View.VISIBLE
checkPermission(Manifest.permission.CAMERA,
CAMERA_PERMISSION_CODE)
startActivityForResult(receiptsViewModel.cameraIntent(requireActivity()),REQUEST_CODE_KAMERA)
}
fun showDialog() {
val dialogBuilder = AlertDialog.Builder(context)
dialogBuilder.setMessage("The message here")
dialogBuilder.setPositiveButton("Done",
DialogInterface.OnClickListener { dialog, whichButton -> })
val b = dialogBuilder.create()
b.show()
}
Run Code Online (Sandbox Code Playgroud)