小编Xer*_*Xes的帖子

Numpy从变量切片

我正在尝试使用在变量中预定义的切片来切割numpy数组.这有效:

b = fromfunction(lambda x,y: 10*x+y, (5,4),dtype=int) # Just some matrix

b[1:3,1:3]
# Output:
# array([[11, 12],
#       [21, 22]])
Run Code Online (Sandbox Code Playgroud)

但我想做的是这样的事情:

slice = "1:3,1:3"
b[slice]
# Output:
# array([[11, 12],
#       [21, 22]])
Run Code Online (Sandbox Code Playgroud)

对我来说切片变量的类型并不重要,我只是以字符串为例.如何保存这样的切片说明符?

python numpy slice

10
推荐指数
2
解决办法
5801
查看次数

多边形在一个以上的点接触到匀称

我有一个Python中的形状多边形列表.要使用.touches()方法找出哪种多边形触摸很容易.但是,只有当多边形共享多个点(换句话说,共享边框)时,我才需要返回true .让我说明一下:

In [1]: from shapely.geometry import Polygon
In [2]: polygons = [Polygon([(0,0),(0,1),(1,1),(1,0)]), Polygon([(1,0),(1,1),(2,1),(2,0)]), Polygon([(2,1),(2,2),(3,2),(3,1)])]

In [3]: polygons[0].touches(polygons[1])
Out[3]: True

In [4]: polygons[0].touches(polygons[2])
Out[4]: False

In [5]: polygons[1].touches(polygons[2])
Out[5]: True
Run Code Online (Sandbox Code Playgroud)

在这种情况下,多边形0和1共享两个点(整个边界).多边形1和2仅共享一个点.我正在寻找的是一个在上面的例子中给我真,假,假的功能,或者只是返回触摸点数的东西,然后我可以自己完成其余的逻辑.

当然,任何不涉及手动迭代所有点的解决方案都是最佳的 - 如果我需要这样做,它会破坏使用形状的目的:-)

提前致谢!

python polygon shapely

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

FREENECT_DEPTH_REGISTERED对libfreenect没有影响

我正在使用libfreenect驱动程序上的Kinect(原始的Xbox版本)(顺便说一句,我在Ubuntu 12.04上).我已经从git克隆了最新版本并按照以下说明手动安装:http://openkinect.org/wiki/Getting_Started#Ubuntu_Manual_Install

我想访问注册的深度值.据我所知,Kinect已经过工厂校准,并且有一个查找表匹配正确RGB像素的深度像素.

我可以很好地打开Kinect并检索原始的11位深度数据.对于1到7.5米的距离,这给出了从大约730到1045的非线性值.

运行device->setDepthFormat(FREENECT_DEPTH_MM);使得Kinect输出距离以mm为单位,因此setDepthFormat似乎可以正常工作.

运行device->setDepthFormat(FREENECT_DEPTH_REGISTERED);似乎没有效果,因为只输出原始深度值.我错过了什么?

c++ kinect openkinect

5
推荐指数
1
解决办法
1552
查看次数

使用Numpy将值映射到更高的维度

我正在尝试将颜色图应用于Numpy中的二维灰度图像(该图像由OpenCV加载/生成)。

我有256个条目的长列表,其中包含RGB值,这是我的颜色图:

cMap = [np.array([0, 0, 0], dtype=np.uint8),
        np.array([0, 1, 1], dtype=np.uint8),
        np.array([0, 0, 4], dtype=np.uint8),
        np.array([0, 0, 6], dtype=np.uint8),
        np.array([0, 1, 9], dtype=np.uint8),
        np.array([ 0,  0, 12], dtype=np.uint8),
        # Many more entries here
       ]
Run Code Online (Sandbox Code Playgroud)

输入灰度图像(形状(y,x,1))时,我想输出彩色图像(形状(y,x,3)),其中每个输入像素的灰度值用作索引,cMap以找到适合输出像素的颜色。到目前为止,我的尝试很小(受numpy数组中的值快速替换启发)看起来像这样:

colorImg = np.zeros(img.shape[:2] + (3,), dtype=np.uint8)

for k, v in enumerate(cMap):
    colorImg[img==k] = v
Run Code Online (Sandbox Code Playgroud)

这给了我错误ValueError: array is not broadcastable to correct shape。我想我已经缩小了问题的范围:我的切片导致一维布尔数组,其中每个都有一个条目imgcolorImg,但是条目的数量是的三倍img,因此布尔数组不会足够长。

我已经尝试过各种重塑和其他切片,但是我现在很困。我敢肯定有一种优雅的方法可以解决这个问题:-)

python opencv numpy

5
推荐指数
1
解决办法
468
查看次数

CakePHP 3中的克隆实体和所有相关实体

在我的CakePHP 3应用程序中,我需要克隆和保存一些复杂的实体树。

结构的根源是一个调查表,一个调查表有很多问题,每个问题有很多字段,等等(更深入)。现在,我希望用户能够通过复制旧问卷来定义新问卷。然后他们可以更改所需的内容。

通过$questionnaire->$this->Questionnaires->get($id)与适当的包含字段一起使用,我可以获得需要复制的内容的转储。有什么聪明的方法可以将其保存为一堆新实体,同时保留它们之间的数据和结构?

php cakephp cakephp-3.0

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

标签 统计

python ×3

numpy ×2

c++ ×1

cakephp ×1

cakephp-3.0 ×1

kinect ×1

opencv ×1

openkinect ×1

php ×1

polygon ×1

shapely ×1

slice ×1