小编Luc*_*uca的帖子

剪辑voronoi图python

我正在从一组点计算voronoi图,如下所示:

from scipy.spatial import Voronoi
import numpy as np


np.random.seed(0)
points = np.random.uniform(-0.5, 0.5, (100, 2))
// Compute Voronoi
v = Voronoi(points)
voronoi_plot_2d(v)
plt.show()
Run Code Online (Sandbox Code Playgroud)

这将创建如下图像:

维诺

可以看出,这是创建无限远(虚线)的顶点,也是创建点的原始边界框之外的顶点:

 bbox = np.array([[-0.5, -0.5], [0.5, -0.5], [0.5, 0.5], [-0.5, 0.5]])
Run Code Online (Sandbox Code Playgroud)

我想要做的是将voronoi图剪辑到此边界框,即将出界和无限顶点投影到此边界框上的适当位置.因此,需要重新排列顶点并将其投影回来自无限远或有限顶点的适当交叉点,但这些顶点超出了剪切区域的界限.

python voronoi spatial scipy computational-geometry

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

gstreamer 未刷新到文件接收器

我有这个 gstreamer 管道,它从 coomand 行工作为:

gst-launch-1.0 autovideosrc ! tee name = t ! queue ! omxh264enc ! 
'video/x-h264, stream-format=(string)byte-stream' ! h264parse ! qtmux 
! filesink name=fileSink location=test.mp4 t. ! queue ! videoscale ! 
video/x-raw, width=480,height=270 ! xvimagesink name=displaySink -e
Run Code Online (Sandbox Code Playgroud)

现在,我在 C++ 端复制此内容,如下所示:

GstElement * pipeline = gst_parse_launch("autovideosrc ! tee name = t ! "
                    "queue ! omxh264enc ! video/x-h264, "
                    "stream-format=(string)byte-stream ! h264parse ! "
                    "qtmux ! filesink name=fileSink location=test.mp4 t. "
                    "! queue ! videoscale ! video/x-raw, width=480,height=270 ! …
Run Code Online (Sandbox Code Playgroud)

gstreamer

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

从 Julia 的本地目录加载模块

还有其他与此问题相关的问题,但我认为我尝试了推荐的解决方案,但没有成功。

因此,本着我学习 Julia 的初衷,我尝试在本地创建一个模块。我的模块的文件夹结构如下:

- TrimmedGrassmanAvwerage/
    - src/
        - TrimmedGrassmanAverage.jl
        - Utils/
            - dummy.jl
Run Code Online (Sandbox Code Playgroud)

内容dummy.jl很简单:

function dummy(x)
    x + oneunit(x)
end
Run Code Online (Sandbox Code Playgroud)

同样,其内容TrimmedGrassmanAverage为:

module TrimmedGrassmanAverage

export Utils,
       dummy

include("Utils/dummy.jl")

end
Run Code Online (Sandbox Code Playgroud)

现在,在我的 REPL 中我执行以下操作:

julia> include("TrimmedGrassmanAverage/src/TrimmedGrassmanAverage.jl")
Run Code Online (Sandbox Code Playgroud)

这将返回:

Main.TrimmedGrassmanAverage
Run Code Online (Sandbox Code Playgroud)

现在我这样做:

using TrimmedGrassmanAverage
Run Code Online (Sandbox Code Playgroud)

这会返回错误:

ERROR: ArgumentError: Package TrimmedGrassmanAverage not found in current   path:
- Run `Pkg.add("TrimmedGrassmanAverage")` to install the TrimmedGrassmanAverage package.
Run Code Online (Sandbox Code Playgroud)

我认为执行 `include("...") 会将包放入路径中,julia 应该能够找到它。然而,显然还缺少一些步骤。

编辑

但是,我可以这样做:

using Main.TrimmedGrassmanAverage
Run Code Online (Sandbox Code Playgroud)

然后我可以打电话:

TrimmedGrassmanAverage.dummy(10);
Run Code Online (Sandbox Code Playgroud)

我不确定为什么Main必须添加命名空间,也不知道为什么我不能在dummy没有Trimmed...导出dummy函数的情况下直接调用。

julia

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

从字符串列表的列表构建字符串

我宁愿采用这种丑陋的方式从列表中构建字符串:

val input = listOf("[A,B]", "[C,D]")

val builder = StringBuilder()
builder.append("Serialized('IDs((")
for (pt in input) {
 builder.append(pt[0] + " " + pt[1])
 builder.append(", ")  
}
builder.append("))')")
Run Code Online (Sandbox Code Playgroud)

问题是它在最后一个元素后面添加了一个逗号,如果我想避免这种情况,我需要添加另一个 if 检查最后一个元素的循环。

我想知道在 kotlin 中是否有更简洁的方法来做到这一点?

编辑

最终结果应该是这样的:

Serialized('IDs((A B,C D))')
Run Code Online (Sandbox Code Playgroud)

kotlin

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

openCV中的旋转矩阵

我在 python 中创建一个旋转矩阵如下:

import numpy as np
def make_rot(angle):
    cost = np.cos(np.deg2rad(angle))
    sint = np.sin(np.deg2rad(angle))
    rot = np.array([[cost, -sint, 0],
                   [sint, cost, 0],
                   [0, 0, 1]])
    return rot
Run Code Online (Sandbox Code Playgroud)

这是在维基百科页面中定义的:http : //en.wikipedia.org/wiki/Rotation_matrix

我以 45 度的角度参数运行它,我得到类似的结果:

[[ 0.70710678 -0.70710678  0.        ]
 [ 0.70710678  0.70710678  0.        ]
 [ 0.          0.          1.        ]]
Run Code Online (Sandbox Code Playgroud)

现在,我使用 OpenCV getRotationMatrix2DAPI 如下:

import cv2
M = cv2.getRotationMatrix2D((0, 0), 45, 1)
Run Code Online (Sandbox Code Playgroud)

我得到的矩阵是矩阵的逆矩阵(转置,因为它是一个旋转矩阵)。结果如下:

[[ 0.70710678  0.70710678  0.        ]
 [-0.70710678  0.70710678  0.        ]]
Run Code Online (Sandbox Code Playgroud)

正如你所看到的,它是相反的。我在 OpenCV 文档中没有找到任何关于这种行为的内容。

现在,我可以在 OpenCV 中使用这个矩阵skimage …

python opencv transformation image-processing scikit-image

4
推荐指数
1
解决办法
7613
查看次数

如何删除django JWT令牌?

我正在使用github上的Django休息框架JSON Web令牌API(https://github.com/GetBlimp/django-rest-framework-jwt/tree/master/).

我可以成功创建令牌并使用它们来调用受保护的REST AP.但是,在某些情况下,我希望在到期时间之前删除特定令牌.所以我想这样做的观点如下:

class Logout(APIView):
    permission_classes = (IsAuthenticated, )
    authentication_classes = (JSONWebTokenAuthentication, )

    def post(self, request):
        # simply delete the token to force a login        
        request.auth.delete()  # This will not work
        return Response(status=status.HTTP_200_OK)
Run Code Online (Sandbox Code Playgroud)

request.auth只是一个字符串对象.所以,这当然不会起作用,但我不确定如何清除底层令牌.

编辑

阅读更多关于这一点,似乎我不需要做任何事情,因为没有任何东西存储在服务器端与JWT.因此,只需关闭应用程序并在下次登录时重新生成令牌即可.那是对的吗?

python django rest jwt

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

http响应返回的json对象

我正在使用python和django开发一些REST API.我有一个关于请求调用返回的JSON unicode字符串的问题.所以,我做的事情如下:

resp = requests.get(self.url)
if resp.status_code is status.HTTP_200_OK:
    obj = json.loads(resp.json())
Run Code Online (Sandbox Code Playgroud)

有了这个,我可以迭代条目:

for o in obj:
    print o
Run Code Online (Sandbox Code Playgroud)

这打印如下:

{u'pk': 1, u'model': u'aslapp.imagetypemodel', u'fields': {u'type': u'PNG'}}
{u'pk': 2, u'model': u'aslapp.imagetypemodel', u'fields': {u'type': u'JPG'}}
Run Code Online (Sandbox Code Playgroud)

但是,我读到resp.json()调用应该在json.loads()内部调用此方法,并将处理编码的东西.但是,只是做:

obj = resp.json()
for o in obj:
    print o
Run Code Online (Sandbox Code Playgroud)

只需迭代unicode字符串中的每个字符.loads如果我想迭代JSON条目,我应该再次通过该方法运行它吗?迭代返回的所有返回的JSON记录的正确方法是什么resp.json().

python django unicode json python-requests

4
推荐指数
1
解决办法
443
查看次数

折叠 numpy 数组除前两个维度之外的所有维度

我有一个可变维度的 numpy 数组,例如它可以具有以下形状

(64, 64)
(64, 64, 2, 5)
(64, 64, 40)
(64, 64, 10, 20, 4)
Run Code Online (Sandbox Code Playgroud)

我想要做的是,如果维数大于 3,我想将其他所有内容折叠/堆叠到第三维中,同时保留顺序。所以,在我上面的例子中,操作后的形状应该是:

(64, 64)
(64, 64, 10)
(64, 64, 40)
(64, 64, 800)
Run Code Online (Sandbox Code Playgroud)

此外,还需要保留订单。例如,形状的数组(64, 64, 2, 5)应堆叠为

(64, 64, 2)
(64, 64, 2)
(64, 64, 2)
(64, 64, 2)
(64, 64, 2)
Run Code Online (Sandbox Code Playgroud)

即一个接一个的 3D 切片。另外,在操作之后,我想将其重塑回原始形状,而不进行任何排列,即保留原始顺序。

我可以做的一种方法是将所有维度值从 3 乘以最后一个维度,即

shape = array.shape
if len(shape) > 3:
    final_dim = 1
    for i in range(2, len(shape)):
        final_dim *= shape[i]
Run Code Online (Sandbox Code Playgroud)

然后重塑数组。就像是:

array.reshape(64, 64, final_dim)
Run Code Online (Sandbox Code Playgroud)

然而,我首先不确定顺序是否按照我想要的方式保留,以及是否有更好的 …

python numpy

4
推荐指数
1
解决办法
5122
查看次数

django 表如何检测表是否为空

我是 Django 和 Web 开发的新手,基于示例和 SO 帮助,我拼凑了一些采用模型并将其呈现在 Django 表中的东西。我的模板代码基本如下:

{% block content %}
{% load static %}
{% load render_table from django_tables2 %}
 <div class="function-page">
     <div class="table-form">
        <div class="function-container">
                {% render_table reviews %}
        </div>
     </div>
 </div>
{% endblock %}
Run Code Online (Sandbox Code Playgroud)

观点如下:

@login_required(login_url="login/")
def review(request):
    table = DummyTable(DummyModel.objects.all())
    form = DummyForm()
    RequestConfig(request, paginate={"per_page": 10}).configure(table)
    return render(request, 'review.html', {'reviews': table, 'DummyForm': form})
Run Code Online (Sandbox Code Playgroud)

这工作正常。但是,我想做的是向用户显示一条消息,说数据库表为空时没有记录。在当前设置中,它显示了一个带有列的空表,从可用性的角度来看,这可能不是最好的。

django django-templates django-views django-tables2

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

在朱莉娅中放下单身尺寸

刚刚玩Julia(1.0)并且我需要在Python/numpy/matlab中使用很多东西就是squeeze删除单例维度的功能.

我发现Julia的一种方法是:

a = rand(3, 3, 1);
a = dropdims(a, dims = tuple(findall(size(a) .== 1)...))
Run Code Online (Sandbox Code Playgroud)

第二行看起来有点麻烦,不容易阅读和解析(这也可能是我从其他语言带来的偏见).但是,我想知道这是否是在朱莉娅这样做的规范方式?

julia

4
推荐指数
3
解决办法
1101
查看次数