小编Kev*_*zke的帖子

如果已知外部和内部参数,则从2D图像像素获取3D坐标

我正在从tsai algo做相机校准.我有内在和外在矩阵,但我怎样才能从该信息中重建三维坐标?

在此输入图像描述

1) 我可以使用高斯消元法找到X,Y,Z,W,然后将点作为齐次系统的X/W,Y/W,Z/W.

2)我可以使用 OpenCV文档方法:

在此输入图像描述

因为我知道u,v,R,t,我可以计算X,Y,Z.

然而,这两种方法最终都会产生不正确的结果.

我做错了什么?

c++ opencv homogenous-transformation camera-calibration pose-estimation

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

使用相邻像素交叉乘积从深度图像计算表面法线

正如标题所说,我想通过使用相邻像素的叉积来计算给定深度图像的表面法线.我想使用Opencv并避免使用PCL,但是我并不真正理解这个过程,因为我的知识在这个主题上非常有限.因此,如果有人可以提供一些提示,我将不胜感激.这里要提到的是除了深度图像和相应的rgb图像之外我没有任何其他信息,所以没有K相机矩阵信息.

因此,假设我们有以下深度图像:

在此输入图像描述

并且我想在相应的点找到具有相应深度值的法向量,如下图所示:

在此输入图像描述

如何使用相邻像素的叉积来做到这一点?我不介意法线是否高度准确.

谢谢.


更新:

好吧,我试图关注@ timday的答案并将他的代码移植到Opencv.使用以下代码:

Mat depth = <my_depth_image> of type CV_32FC1
Mat normals(depth.size(), CV_32FC3);

for(int x = 0; x < depth.rows; ++x)
{
    for(int y = 0; y < depth.cols; ++y)
    {

        float dzdx = (depth.at<float>(x+1, y) - depth.at<float>(x-1, y)) / 2.0;
        float dzdy = (depth.at<float>(x, y+1) - depth.at<float>(x, y-1)) / 2.0;

        Vec3f d(-dzdx, -dzdy, 1.0f);
        Vec3f n = normalize(d);

        normals.at<Vec3f>(x, y) = n;
    }
}

imshow("depth", depth / 255);
imshow("normals", normals);
Run Code Online (Sandbox Code Playgroud)

我得到正确的结果如下(我不得不更换double …

c++ opencv normals depth cross-product

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

如何在Javascript中切片对象?

我试图使用Array.prototype切片对象,但是它返回一个空数组,除了传递参数之外是否有任何方法来切片对象,或者只是我的代码有错误?谢谢!!

var my_object = {
 0: 'zero',
 1: 'one',
 2: 'two',
 3: 'three',
 4: 'four'
};

var sliced = Array.prototype.slice.call(my_object, 4);
console.log(sliced);
Run Code Online (Sandbox Code Playgroud)

javascript arrays arguments object slice

17
推荐指数
5
解决办法
4万
查看次数

我忘记了分号";" 在MySQL终端查询中.我该怎么退出?

有时我忘了用分号结束我的SQL查询";" 在我的Mac终端.发生这种情况时,终端->在开头设置a ,我无法退出或运行任何其他SQL命令.

我怎么能退出这个?

mysql sql macos terminal

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

字体识别来自免费手绘

我一直致力于一个涉及基于Android Canvas中用户免费手绘字符的字体识别的应用程序.

在此应用程序中,要求用户以预定义的顺序输入一些预定义的字符(A,a,B,c).基于此,有没有办法显示与用户手写相匹配的非常相似的字体.

我研究过这个主题发现了一些论文和文章,但大多数都是从捕获的图像识别字体.在这种情况下,他们通过分段,单个字母等来解决很多问题.但在我的场景中,我知道用户正在绘制什么字母.

我对OpenCV和机器学习有一定的了解.需要有关如何解决此问题的帮助.

fonts android opencv machine-learning pattern-matching

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

在Google Cloud Bucket中保存Keras ModelCheckpoints

我正在使用带有TensorFlow后端的Keras在Google Cloud Machine Learning Engine上培训LSTM网络.在对gcloud和我的python脚本进行一些调整之后,我设法部署我的模型并执行成功的训练任务.

然后我尝试使用Keras modelCheckpoint回调使我的模型在每个纪元后保存检查点.使用Google Cloud运行本地培训工作可以完美地按预期运行.在每个纪元之后,权重将存储在指定的路径中.但是,当我尝试在Google云端机器学习引擎上在线运行相同的工作时weights.hdf5,不会将其写入我的Google Cloud Bucket.相反,我收到以下错误:

...
File "h5f.pyx", line 71, in h5py.h5f.open (h5py/h5f.c:1797)
IOError: Unable to open file (Unable to open file: name = 
'gs://.../weights.hdf5', errno = 2, error message = 'no such file or
directory', flags = 0, o_flags = 0)
Run Code Online (Sandbox Code Playgroud)

我调查了这个问题,事实证明,Bucket本身没有问题,因为Keras Tensorboard回调确实正常工作并将预期输出写入同一个存储桶.我还确保h5py通过在以下setup.py位置提供它来包含它:

??? setup.py
    ??? trainer
    ??? __init__.py
    ??? ...
Run Code Online (Sandbox Code Playgroud)

实际包含setup.py如下所示:

# setup.py
from setuptools import setup, find_packages

setup(name='kerasLSTM',
      version='0.1',
      packages=find_packages(), …
Run Code Online (Sandbox Code Playgroud)

hdf5 h5py google-cloud-platform keras tensorflow

11
推荐指数
2
解决办法
3154
查看次数

历史以太坊价格 - Coinbase API

使用Python coinbase API--的functions-- get_buy_price,get_sell_price,get_spot_price,get_historical_data,等...一切似乎只返回比特币的价格.有没有办法查询以太坊价格?

似乎currency_pair = 'BTC-USD'可以改为类似于currency_pair = 'ETH-USD'虽然没有效果的东西.

我希望API不支持这个,除了官方文档明确指出:

获得一个比特币或以太币的总价格

我可以通过quote='true'在买/卖请求中使用标志来解决这个问题.然而这只能向前发展,我想要历史数据.

python python-3.x coinbase-api ethereum

9
推荐指数
1
解决办法
6921
查看次数

R是否有像Java的PriorityQueue这样的优先级队列?

我正在寻找一个通用的优先级队列R.R是否有任何通用优先级队列实现(包),如Java PriorityQueue类或Python heapq

r priority-queue

8
推荐指数
2
解决办法
2189
查看次数

Visual Studio Code html 格式不起作用

代码格式在 Visual Studio Code 中似乎不起作用。我已经尝试过shift+alt+f,但它不会格式化 html 代码。我运行ctrl+shift+p并输入 Format ,我唯一的选项是 Format Document( shift+alt+f) 和 Format Selection(没有格式代码)。我不明白我做错了什么?我是否需要安装某种扩展才能使这种格式适用于 html 文件?

visual-studio-code

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

Tensorflow:元组列表作为占位符

我想使用compute_gradients并生成局部渐变。这些梯度将与其他机器的多个局部梯度求平均值,之后apply_gradients将被调用。我在第二个中使用2 session.runsfeed_dict接受渐变。由于apply_gradients期望有元组列表,因此我正在寻找一种有效的方法来执行此操作。

这就是我生成元组占位符列表的方式:

grads  = cifar10.train_part1(loss, global_step)

xx = [tf.placeholder(tf.float32, shape=grads[0][0].shape) for i in range(10)]
yy = [tf.placeholder(tf.float32, shape=grads[0][0].shape) for i in range(10)]


xyz = zip(xx,yy)

train_op = cifar10.train_part2(loss,global_step, xyz)
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

NotImplementedError: ('Trying to optimize unsupported type ', tf.Tensor 'Placeholder_10:0' shape=(5, 5, 3, 64) dtype=float32)
Run Code Online (Sandbox Code Playgroud)

machine-learning python-2.7 deep-learning tensorflow

5
推荐指数
0
解决办法
637
查看次数