小编Hoj*_*olf的帖子

如何在Python中找到可执行文件的位置?

在 Python 中识别可执行文件的最佳方法是什么?

我发现以下函数会找到记事本可执行文件

from shutil import which
which('notepad')
Run Code Online (Sandbox Code Playgroud)
from shutil import which
which('notepad')
Run Code Online (Sandbox Code Playgroud)

另一种方法来做到这一点。

from distutils import spawn
spawn.find_executable('notepad')
Run Code Online (Sandbox Code Playgroud)
Out[32]: 'C:\\Windows\\system32\\notepad.EXE'
Run Code Online (Sandbox Code Playgroud)

虽然这两种方法都适用于记事本,但我似乎无法让它们找到其他可执行文件,例如vlc.exegimp-2.10.exe或其他文件。在计算机上查找可执行文件的更好方法是什么?

python executable path

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

Python spyder 无法初始化 GLX

尝试设置用于图像处理的桌面工作站。我最近安装了 ubuntu 16.04,并通过Adrian的指南安装了 python3、cv2 和虚拟环境。

我没有使用 cv2 3.1.0,而是使用了 cv2 3.2.0,但除此之外,一切都是一样的。

正确安装并运行各种测试后,我确认 python3 正在工作并且 cv2 已链接到 python。

因为我习惯了图形界面,所以我决定安装spyder,因为它有一个很好的 GUI 系统。我之前在 2 个独立的设备(一台笔记本电脑和一个树莓派 3)上做过这个。但是,在这台台式计算机上安装时,我遇到了一个奇怪的问题。

当我运行 spyder 时,它会导致以下错误

  Could not initialize GLX
  Aborted (core dumped)
Run Code Online (Sandbox Code Playgroud)

我一直在网上寻找解决方案,但我似乎无法找到这个问题的答案

编辑:我在 ubuntu 上搜索核心转储文件,发现一堆文件都包含相同的代码 00000033。

python ubuntu opencv spyder

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

高斯拉普拉斯算子的更快方法

我目前正在优化代码以提高图像处理效率。我的第一个问题是,由于vision.VideoFileReaderstep地方花了很长时间才能打开每一帧。我通过将灰度图像压缩为1 RGB帧中的3帧来加快代码速度。这样,我可以使用加载1个RGB帧,vid.step()并导入3帧准备进行处理。

现在,我的代码在高斯的拉普拉斯算子(LoG)过滤上运行缓慢。我读到可以使用该函数imfilter执行LoG,但这似乎是下一个速率限制步骤。

进一步阅读后,看来imfilter速度不是最佳选择。显然,MATLAB引入了LoG函数,但它是在R2016b中引入的,不幸的是我正在使用R2016a。

有没有一种方法可以加快速度,imfilter或者有更好的功能可以用来执行LoG过滤?

我应该打电话给python来加快这个过程吗?

在此处输入图片说明

码:

Hei = gh.Video.reader.info.VideoSize(2);
Wid = gh.Video.reader.info.VideoSize(1);

Log_filter = fspecial('log', filterdot, thresh); % fspecial creat predefined filter.Return a filter.
    % 25X25 Gaussian filter with SD =25 is created.

tic
ii = 1;

bkgd = zeros(Hei,Wid,3);
bkgd(:,:,1) = gh.Bkgd;
bkgd(:,:,2) = gh.Bkgd;
bkgd(:,:,3) = gh.Bkgd;

bkgdmod = reshape(bkgd,720,[]);

while ~isDone(gh.Video.reader)
    frame = gh.readFrame();
    img_temp = double(frame);

    img_temp2 = reshape(img_temp,720,[]); …
Run Code Online (Sandbox Code Playgroud)

optimization matlab filtering image-processing laplacianofgaussian

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

2d笛卡尔空间中垂直线段的坐标

我很难找到看似简单的东西.我在图表上有两个已知的坐标,(X1,Y1)和(X2,Y2).我想要识别的是(X3,Y3)的坐标.

我想过使用罪和cos但是一旦我到了这里,我的大脑停止工作.我知道

sin O = y/R
cos O = x/R
Run Code Online (Sandbox Code Playgroud)

所以我想简单地导入线的长度(在这种情况下它是2)并使用已知的角度.看起来很简单,但对于我的生活,我的大脑不会缠绕这个.

在此输入图像描述

我需要这个的原因是因为我试图在matlab中使用poly2mask在图像上打印一条线.代码必须在2D空间中工作,因为我将使用该线构建电影.

X1 = [134 134 135 147 153 153 167]
Y1 = [183 180 178 173 164 152 143]

X2 = [133 133 133 135 138 143 147]
Y2 = [203 200 197 189 185 173 163]

YZdist = 2;

for aa = 1:length(X2)
     XYdis(aa) = sqrt((x2(aa)-x1(aa))^2 + (Y2(aa)-Y1(aa))^2);

     X3(aa) = X1(aa) * tan(XYdis/YZdis);
     Y3(aa) = Y1(aa) * tan(XYdis/YZdis);

end
polmask = poly2mask([Xdata X3],[Ydata Y3],50,50);
Run Code Online (Sandbox Code Playgroud)

math matlab

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

基于二进制数组中的长度过滤岛 - MATLAB

我有一个二进制数组,我想根据它们重复的长度翻转值.举个例子

Ar = [0 1 0 0 0 1 1 0 0 0 1 1 1 1 1 0 0 0 0 1 1 1 1 1 1];
Run Code Online (Sandbox Code Playgroud)

理想情况下,我想翻转仅重复2次或更少次数的1,从而产生以下结果.

Ar = [0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 0 0 0 0 1 1 1 1 1 1];
Run Code Online (Sandbox Code Playgroud)

根据我在网上找到的内容,Diff函数最常用于定位和删除序列.但是根据我的定位,它似乎针对所有实例.

matlab

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

"async with" 如果事件循环正在运行但没有事件循环

尝试运行Telethon 文档提供的基本代码时,我收到以下错误。我很困惑,因为我还没有建立一个循环。

RuntimeError:如果事件循环正在运行,则必须使用“async with”(即您在“async def”中)

我在 spyder 4.0.1 中使用 python 3.7.7

from telethon.sync import TelegramClient
from telethon import functions, types

def channel_info(username, api_id, api_hash):
    with TelegramClient(username, api_id, api_hash,channel) as client:
        result = client(functions.channels.GetFullChannelRequest(
            channel=channel
        ))
        return(result)

out = channel_info(username, api_id, api_hash)
Run Code Online (Sandbox Code Playgroud)

python telegram telethon

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