小编s-l*_*low的帖子

Python OpenCV在其他应用程序之上打开窗口

执行包含以下内容cv2.imshow(img)的OpenCV python脚本时:生成的窗口将在终端窗口后面打开.这是一种轻微的刺激 - 有没有办法让它最初在前面/上面打开?

许多人提出了关于强制持久行为的问题(这里这里),但我认为这更简单.

平台OS X和OpenCV 2.4.11

python macos user-interface opencv

19
推荐指数
1
解决办法
4595
查看次数

从两个校准过的摄像机进行3D重建 - 这个管道中的错误在哪里?

有许多关于从已知内部校准的立体视图进行3D重建的帖子,其中一些是非常好的.我已经阅读了很多这些内容,根据我所阅读的内容,我正在尝试使用下面的管道/算法来计算我自己的3D场景重建.我将列出方法,然后在底部询问具体问题.

0.校准你的相机:

  • 这意味着检索照相机校准矩阵ķ 1和K 2为摄像机1和摄像机2.这些是3×3矩阵每个封装相机的内部参数:焦距,主点偏移/图像中心.这些不会改变,只要您不缩放或更改您录制的分辨率,您只需要为每个摄像机执行一次此操作.
  • 离线这样做.不要争吵.
  • 我使用的OpenCVCalibrateCamera()和棋盘程序,但是这个功能也包括在Matlab的摄像机标定工具箱.OpenCV例程似乎运行良好.

1.基本矩阵F:

  • 现在您的相机设置为立体声装置.使用两个图像/视图之间的点对应来确定该配置的基本矩阵(3x3).
  • 你如何获得这些信件取决于你,并将在很大程度上取决于场景本身.
  • 我正在使用OpenCV findFundamentalMat()来获得F,它提供了许多选项方法(8点算法,RANSAC,LMEDS).
  • 您可以通过将结果矩阵插入到基本矩阵的定义方程中来测试得到的矩阵:x'Fx = 0其中x'和x是(x, y)齐次坐标中的原始图像点对应关系,(x, y, 1)并且三个向量中的一个被转置,以便乘法有意义.每个对应关系越接近于零,越好的F就越服从它的关系.这相当于检查派生的F实际从一个图像平面映射到另一个图像平面的程度.我使用8点算法获得~2px的平均偏差.

2.基本矩阵E:

  • 直接从F和校准矩阵计算基本矩阵.
  • E = K 2 T FK 1

3.对E的内部约束:

  • E应该遵守某些限制.特别是,如果被SVD分解成USV.t那么它的奇异值应该是= a, a, 0.S的前两个对角元素应该相等,第三个零.
  • 我很惊讶地在这里读到,如果在测试时不是这样,你可以选择从之前的分解中制作一个新的Essential矩阵,如下所示:E_new = U * diag(1,1,0) * V.t当然可以保证服从约束.你基本上人为地设置了S =(100,010,000).

4.全相机投影矩阵:

  • 有两个相机投影矩阵P 1和P 2.这些是3x4并遵守这种x = PX关系.此外,P = …

opencv computer-vision 3d-reconstruction camera-calibration

10
推荐指数
1
解决办法
2653
查看次数

Java ParseInt() - 捕获具有前导零的字符串

Java的ParseInt方法将很乐意解析前导零提供的十进制值,而不会抛出异常,剥离零:

int value = Integer.parseInt("050", 10);
Run Code Online (Sandbox Code Playgroud)

将导致整数值50.

但是,我有一个应用程序需要这样的字符串作为无效输入被拒绝.到目前为止,我对该问题的解决方案是将解析后的整数转换回字符串,并比较原始/解析字符串的长度,以查看是否已剥离任何字符,例如:

String original = "050";
value  = Integer.parseInt( "050", 10);
String parsed = Integer.toString(value);
if (original.length() != parsed.length()) {
    System.exit(1);
}
Run Code Online (Sandbox Code Playgroud)

哪个工作正常,但感觉有点hacky.是否有更好的方法来检测和处理前导零?

java zero parseint leading-zero

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