小编dec*_*nza的帖子

将float64类型的np.array转换为类型uint8缩放值

我有一个特定的np.array 数据,它代表一个特定的灰度图像.我需要使用SimpleBlobDetector(),遗憾的是只接受8位图像,所以我需要转换这个图像,显然有质量损失.

我已经尝试过了:

import numpy as np
import cv2
[...]
data = data / data.max() #normalizes data in range 0 - 255
data = 255 * data
img = data.astype(np.uint8)
cv2.imshow("Window", img)
Run Code Online (Sandbox Code Playgroud)

但是cv2.imshow没有像预期的那样给出图像,但是有着奇怪的失真......

最后,我只需要将np.float64转换为np.uint8,缩放所有值并截断其余值,例如.65535变为255,65534变为254等等....任何帮助?

谢谢.

python numpy image

19
推荐指数
3
解决办法
6万
查看次数

NumPy:linalg.eig()和linalg.eigh()之间的区别

在Python 3应用程序中,我使用NumPy来计算对称实矩阵的特征值和特征向量.

这是我的演示代码:

import numpy as np
a = np.random.rand(3,3)  # generate a random array shaped (3,3)

a = (a + a.T)/2  # a becomes a random simmetric matrix    

evalues1, evectors1 = np.linalg.eig(a)

evalues2, evectors2 = np.linalg.eigh(a)
Run Code Online (Sandbox Code Playgroud)

除了符号之外,我使用np.linalg.eig和得到了相同的特征向量和特征值np.linalg.eigh.那么,这两种方法有什么区别?

谢谢


编辑:我在这里阅读了文档https://docs.scipy.org/doc/numpy/reference/generated/numpy.linalg.eig.htmlhttps://docs.scipy.org/doc/numpy/ reference/generated/numpy.linalg.eigh.html 但是eigh()当我有一个对称数组时,我仍然无法理解为什么我应该使用它.

numpy python-3.x

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

Python脚本,代理和Microsoft Forefront - 自动身份验证

今天我正在处理一个Python3脚本,它必须执行http post请求并发送邮件.

Python脚本在受Forefront保护的公司网络中的Windows PC上启动.用户使用其秘密凭据进行登录,并可通过代理访问Internet.

与其他非Microsoft应用程序(即Chrome)一样,我希望我的脚本连接到Internet而不提示用户输入用户名和密码.

我怎样才能做到这一点?

python windows proxy ldap python-3.x

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

如何轻松避免Tkinter冻结?

我开发了一个简单的Python应用程序,然后我决定使用Tkinter添加一个简单的GUI.

问题是,虽然主要功能正在做它的东西,窗口冻结.

我知道这是一个常见问题,我已经读过我应该使用多线程(非常复杂,因为函数也更新了GUI)或者将我的代码分成不同的函数,每个函数都工作了一段时间.无论如何,我不想为这样一个愚蠢的应用程序更改我的代码.

我的问题是:是否有可能没有简单的方法来每秒更新我的Tkinter窗口?我只想申请KISS规则!

我会在下面给你一个伪代码示例,但我没试过但是没有用:

    class Gui:
        [...]#costructor and other stuff

        def refresh(self):
            self.root.update()
            self.root.after(1000,self.refresh)

        def start(self):
            self.refresh()
            doingALotOfStuff()

    #outside
    GUI = Gui(Tk())
    GUI.mainloop()
Run Code Online (Sandbox Code Playgroud)

它只会执行一次刷新,我无法理解为什么.

非常感谢你的帮助.

python user-interface tkinter

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

Python 3和Tkinter。全局变量太多

我开始使用Tkinter库在Python中编写一个简单的GUI应用程序。一切正常,但是要动态更改任何小部件(例如,将按钮从“登录”更改为“注销”等),我必须从外部获取包含小部件对象本身的变量。我可以通过两种方式做到这一点:

  1. 将小部件作为参数传递;
  2. 使用全局变量。

一个简化的例子:

1)作为参数传递:

def changeLabel(b):
    b.config(text='Logout')

btn1 = Button(f0,text="Login",width=15)
btn1.grid(row=1,column=2,rowspan=1,padx=10,ipadx=10)
changeLabel(btn1)
Run Code Online (Sandbox Code Playgroud)

2)或使用全局变量:

def changeLabel():
    global btn1
    btn1.config(text='Logout')

btn1 = Button(f0,text="Login",width=15)
btn1.grid(row=1,column=2,rowspan=1,padx=10,ipadx=10)
changeLabel(btn1)
Run Code Online (Sandbox Code Playgroud)

现在,我知道应该避免使用全局变量,但是将每个小部件作为参数通过许多函数传递,即使在简单的应用程序中也很麻烦。

那么,在运行时操作Tkinter小部件的最佳方法是什么?你能建议我正确的方法吗?谢谢

python tkinter python-3.x

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

标签 统计

python ×4

python-3.x ×3

numpy ×2

tkinter ×2

image ×1

ldap ×1

proxy ×1

user-interface ×1

windows ×1