我正在尝试使用在变量中预定义的切片来切割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中的形状多边形列表.要使用.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仅共享一个点.我正在寻找的是一个在上面的例子中给我真,假,假的功能,或者只是返回触摸点数的东西,然后我可以自己完成其余的逻辑.
当然,任何不涉及手动迭代所有点的解决方案都是最佳的 - 如果我需要这样做,它会破坏使用形状的目的:-)
提前致谢!
我正在使用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);似乎没有效果,因为只输出原始深度值.我错过了什么?
我正在尝试将颜色图应用于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。我想我已经缩小了问题的范围:我的切片导致一维布尔数组,其中每个都有一个条目img。colorImg,但是条目的数量是的三倍img,因此布尔数组不会足够长。
我已经尝试过各种重塑和其他切片,但是我现在很困。我敢肯定有一种优雅的方法可以解决这个问题:-)
在我的CakePHP 3应用程序中,我需要克隆和保存一些复杂的实体树。
结构的根源是一个调查表,一个调查表有很多问题,每个问题有很多字段,等等(更深入)。现在,我希望用户能够通过复制旧问卷来定义新问卷。然后他们可以更改所需的内容。
通过$questionnaire->$this->Questionnaires->get($id)与适当的包含字段一起使用,我可以获得需要复制的内容的转储。有什么聪明的方法可以将其保存为一堆新实体,同时保留它们之间的数据和结构?