小编Cha*_*net的帖子

如何在缩放,平移,调整大小时更新pyqtgraph图像数据

我正在使用PySide.在里面QMainWindow,我有一个ImageItem显示在里面PlotWidget.

假设我有一个generateImage(r, np)可以动态生成图像的功能.该函数为位于正方形内的图像(实际坐标)返回npx np像素数组(-r, -r)-(r, r).我希望轴显示真实坐标,而不是像素坐标.

  1. 如果我放大/缩小,我想生成相同数量的像素,但是在更小/更大的正方形内(在实际坐标中);
  2. 如果我翻译图像,我需要生成一个更大的正方形和更多像素的图像,以使用相同的分辨率显示interrest区域;
  3. 如果我调整窗口大小,我需要生成不同数量的像素,以保持显示图像的分辨率相同.

我的代码实际上是这样的:

graph = PlotWidget()
image = ImageItem()
graph.addItem(image)
graph.setAspectLocked(True)  # to keep the pixels square

r = 10e-6  # 10 µm
np = 101  # but should be related to number of pixels in the window
image.setImage(generateImage(r, np))
image.setRect(QRectF(-r, -r, 2*r, 2*r))
Run Code Online (Sandbox Code Playgroud)

我的猜测是使用sigRangeChanged信号来检测视图中的变化.但是,我不确定如何检测窗口的大小和分辨率,以及如何正确更新图像.

我天真地尝试做这样的事情:

graph.sigRangeChanged.connect(updateRange)

def updateRange(view, rng):
    r = max(abs(rng[0][0]), abs(rng[0][1]),
            abs(rng[1][0]), abs(rng[1][1]))
    image.setImage(generateImage(r, np)) …
Run Code Online (Sandbox Code Playgroud)

pyqtgraph

12
推荐指数
0
解决办法
885
查看次数

有没有办法在concurrent.futures中停止正在运行的进程?

如何终止正在运行的进程,使用concurrent.futures开始?据我所知,cancel()如果进程没有运行,该方法可以从队列中删除进程.但是如何杀死正在运行的进程呢?例如,如果我有一个长时间运行的进程,并且我想在GUI中按下"取消"按钮时停止它.

python multiprocessing python-3.x

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

流体动力学模拟,有障碍物

我正在尝试在HTML5画布上编写一个流畅的动态模拟器.我在互联网上发现了一些非常酷的东西,它们总是看起来像一个很有前途的起点,但它们都是基于细胞的,并且使用了一些疯狂的数学.

我希望能够添加任意障碍(任何方向的线条,圆圈等)以使事情更有趣,但我不知道从哪里开始.

有没有人知道一些相当简单的流体模拟方程,包括任何方向的障碍?或者,是否有人能指出我需要采用上述例子中的一个并增加障碍?

我知道这个问题与我应该问的数学倒流有关,但它们似乎更多地涉及理论的东西.如果我在错误的地方,请道歉.我真的不知道从哪里开始 - 如果有人在之前使用任意障碍进行流体模拟,我可以使用一些指针.

这里的准确性在简单性方面落后了.

谢谢!

javascript html5 canvas fluid-dynamics

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

用于集群环境的伪随机数发生器

如何在集群上生成独立的伪随机数,例如蒙特卡罗模拟?我可以有很多计算节点(例如100),我需要在每个节点上生成数百万个数字.我需要保证一个节点上的PRN序列不会与另一个节点上的PRN序列重叠.

  • 我可以在根节点上生成所有PRN,然后将它们发送到其他节点.但这太慢了.
  • 我可以在每个节点上跳到序列中的已知距离.但对于Mersenne-Twister或任何其他优秀的PRNG,是否有这样的算法,可以在合理的时间和内存下完成?
  • 我可以在每个节点上使用不同的生成器.但是有没有像Mersenne-Twister这样的优秀发电机?怎么可能呢?
  • 还有其他吗?

random parallel-processing prng mersenne-twister

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

在Typo3中,setup,常量和TSConfig之间有什么区别

我可以在三个不同的地方编写TypoScript:在模板中,有常量字段和设置字段,在每个页面中都有一个TSConfig字段.但是,似乎每个TypoScript命令都需要进入特定字段.大多数时候,我必须先尝试查找给定配置是进入模板设置还是进入根页面TSConfig.

为什么写TypoScript有三个不同的地方?他们每个人的用途是什么?

typo3 tsconfig

8
推荐指数
1
解决办法
1877
查看次数

如何检索Matplotlib savefig()函数支持的文件格式列表?

的文档savefig()功能说,支持的文件格式列表取决于所使用的后端.如何获取特定后端支持的图像格式列表?

python matplotlib

8
推荐指数
1
解决办法
8781
查看次数

如何使用numpy(和scipy)查找函数的全零?

假设我f(x)a和之间定义了一个函数b.此函数可以有很多零,但也有很多渐近线.我需要检索此函数的所有零.最好的方法是什么?

实际上,我的策略如下:

  1. 我在给定数量的点上评估我的函数
  2. 我检测到是否有符号变化
  3. 我发现正在改变符号的点之间的零点
  4. 我验证找到的零是否真的为零,或者这是否为渐近线

    U = numpy.linspace(a, b, 100) # evaluate function at 100 different points
    c = f(U)
    s = numpy.sign(c)
    for i in range(100-1):
        if s[i] + s[i+1] == 0: # oposite signs
            u = scipy.optimize.brentq(f, U[i], U[i+1])
            z = f(u)
            if numpy.isnan(z) or abs(z) > 1e-3:
                continue
            print('found zero at {}'.format(u))
    
    Run Code Online (Sandbox Code Playgroud)

这个算法似乎有效,除了我看到两个潜在的问题:

  1. 它不会检测到没有穿过x轴的零(例如,在函数中f(x) = x**2)但是,我认为它不会出现在我正在评估的函数中.
  2. 如果离散点太远,它们之间可能会有一个零,并且算法可能无法找到它们.

您是否有更好的策略(仍然有效)来查找函数的所有零?


我不认为这个问题很重要,但对于那些好奇的人,我正在处理光纤中波传播的特征方程.该函数看起来像(之前Vell之前定义的,ell是一个正整数):

def …
Run Code Online (Sandbox Code Playgroud)

python numpy scipy

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

如果inputElement.validity.valid == false,如何显示HTML5验证?

所以我有一个表格,但我并不需要被提交信息到服务器,只是还没有...我需要什么,是刚刚运行通过HTML5领域的内置的验证条件(如电子邮件,等等. ),如果是真的,只需执行一个特定的功能......

到目前为止,我已经想到了......

function checkform()
{
    var /* all the elements in the form here */

    if (inputElement.validity.valid == 'false')
    {
        /* Submit the form, 
        this will cause a validation error, 
        and HTML5 will save the day... */
    } else
    {
        navigateNextStep();
    }
}
Run Code Online (Sandbox Code Playgroud)

这是我到目前为止所提出的逻辑,而且有点后悔,因为我提交知道有一个无效值,因此触发验证提示......

我对上述逻辑的唯一问题是,我有大约7-8个输入元素,并且我发现执行以下操作的选项,而不是'脏':

var inputs = document.getElementsByTagName("INPUT");
if (!inputs[0].validity.valid && !inputs[1].validity.valid && ...)
Run Code Online (Sandbox Code Playgroud)

想法?

javascript validation html5

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

将Python扩展安装到特定位置

我的项目混合纯Python代码和Cython扩展以进行优化和与C库链接.我的Python项目有一个源代码树,Cython和C代码有一个源代码树.我的Cython扩展每个都有一个setup.py文件来构建它们.实际上,对于每个扩展,我执行以下操作:

python setup.py build_ext --inplace
mv myext.so ../some/specific/place/
Run Code Online (Sandbox Code Playgroud)

有没有办法指定distutils安装我的扩展(如果可能,使用相对路径),而不是使用--inplace后跟mv?使用--prefix选项并不好,因为它创建了我不需要的文件夹层次结构.

python distutils

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

在不改变轴的情况下缩放matplotlib中的图像

我有一个显示情节的GUI.我想将该情节与现有图像相匹配.我使用以下方式在图表下显示图像:

myaxe.plot(...)
myaxeimage = myaxe.imshow(myimage, axpect='auto', extent=myaxe.axis(), zorder=-1)
Run Code Online (Sandbox Code Playgroud)

我已经能够使用图像的不透明度

myaxeimage.set_alpha()
Run Code Online (Sandbox Code Playgroud)

现在,我希望能够使用GUI放大和缩小图像并在图像中移动,而不会触及现有的绘图和轴,以便将其与我的绘图对齐.换句话说,我想缩放到给定sxsy因子,并将图像的原点放在给(x,y)定点,剪切图像的部分到轴外.我怎样才能做到这一点?

python matplotlib

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