小编J_y*_*ang的帖子

OpenCV-调整照片的倾斜角度(倾斜)

我有一台照相机从上方指向禅宗花园。但是,相机固定在侧面,而不是直接固定在平板上方。结果,图像看起来像这样(注意矩形的偏斜形状): 在此处输入图片说明

有没有一种方法可以处理图像,以使沙子区域或多或少看起来像一个完美的正方形?

cap = cv2.VideoCapture(0)
while True:
    ret, img = cap.read()
    img = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) 
    img = cv2.flip(img,0)
    cv2.imshow('Cropping', img)
    if cv2.waitKey(500) & 0xff == 27:
        cv2.destroyAllWindows()
        break
Run Code Online (Sandbox Code Playgroud)

非常感谢。

python opencv image-processing

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

无法在 Pipenv 上切换 python 版本

在我的 MacBook Pro 上,我默认使用 Python 3.6,但我从另一个项目接管的项目需要 2.7,我通过 Anaconda 安装了它。我使用pipenv install将版本设置为 3.6的 Pipenv 进行设置。然后我尝试通过以下方式更改版本:

pipenv --python 2.7
Run Code Online (Sandbox Code Playgroud)

但它返回了这个警告:

Warning: Your Pipfile requires python_version 3.6, but you are using 2.7.15 (/Users/j/.local/share/v/Z/bin/python).
Run Code Online (Sandbox Code Playgroud)

然后当然pipenv check失败了,并返回:

Specifier python_version does not match 3.6 (2.7).
Run Code Online (Sandbox Code Playgroud)

然后我尝试了pipenv install python 2.7.15,也失败了。Pipfile 保持 3.6 不变。

Error:  An error occurred while installing 2.7.15!
  Could not find a version that satisfies the requirement 2.7.15 (from versions: )
No matching distribution found for 2.7.15
Run Code Online (Sandbox Code Playgroud)

这是python版本 ls -ls …

python pipenv

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

Python,如何将函数作为参数传递给类方法

我正在尝试编写一个信号处理包,我想让用户创建一个自定义函数而无需访问类文件:

class myclass():
    def __init__(self):
        self.value = 6
    def custom(self, func, **kwargs):
        func(**kwargs)
        return self

c = myclass()
def add(**kwargs):
    self.value +=  kwargs['val']

kwargs = {'val': 4}
c.custom(add, **kwargs )
print (c.value)
Run Code Online (Sandbox Code Playgroud)

我的名字“自我”没有定义。当然,因为 func 不是类的方法。但我不知道如何解决它。请指教。

谢谢

python

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

我可以在conftest中设置pytest命令行参数吗?

我想做的 pytest 将始终涉及短回溯(--tb=short)和报告跳过原因(-rsx

因此,我不需要每次都执行 pytest --tb=short -rsx ,而是可以在某个地方指定它,也许是conftest.py?

谢谢

python pytest

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

PyQt,如何更改BoxLayout的权重(大小)

如图所示,我有一个Gui布局。 在此处输入图片说明

因此,当前Sublayout1和Sublayout2的大小相等。但是我想使Sublayout1的宽度较小,并拉伸Sublayout2的宽度较大。有没有办法动态地做到这一点,而不是放一个固定的大小。就像在Android Studio上一样,您可以在布局中设置元素的权重。

同样,影响大小也不应该影响Bottomlayout。非常感谢您的帮助。该代码的片段为:

sublayout1 = QtGui.QVBoxLayout()
sublayout2 = QtGui.QVBoxLayout()
plotBox = QtGui.QHBoxLayout()
plotBox.addLayout(sublayout1)
plotBox.addLayout(sublayout2) 
bottomlayout = QtGui.QHBoxLayout()
mainlayout.addLayout(plotBox)
mainlayout.addLayout(bottomlayout)
Run Code Online (Sandbox Code Playgroud)

python qt pyqt

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

Pandas,如何重新索引通过附加多个数据帧生成的数据帧.

我有一个数据帧,它是通过将多个数据帧附加到一个长列表中生成的.如图所示,默认索引是0到7之间的循环,因为每个原始df都有这个索引.总行数为240.那么如何将新的df重新索引为0~239而不是30 x 0~7.

我试过了df.reset_index(drop=True),但似乎没有用.我也尝试过:df.reindex(np.arange(240))但是它返回了错误

ValueError: cannot reindex from a duplicate axis
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

python dataframe pandas

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

Numpy,如何将向量重塑为多列数组

我想知道如何使用np.reshape将长矢量重整形为n列数组而没有给出行号。

通常我可以通过以下方式找到行号len(a)//n

a = np.arange(0, 10)
n = 2
b = a.reshape(len(a)//n,n)
Run Code Online (Sandbox Code Playgroud)

是否有更直接的方法而不使用len(a)//n

python numpy

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

在1行中双击for循环以创建新的元组列表

我有两组坐标作为numpy数组。我将基于每个集合的第一个元素创建一个新坐标。

a = np.array([[1,2],[3,4],[5,6]])
b = np.array([[10,20],[30,40],[50,60]])
Run Code Online (Sandbox Code Playgroud)

所以我想得到

[(1,10),(3,30),(5、50)]

我试过了:

c = [(i[0], j[0]) for (i,j) in itertools.product(a,b)]
Run Code Online (Sandbox Code Playgroud)

但是它返回了:

[(1,10),(1,30),(1,50),(3,10),(3,30),(3,50),(5,10),(5,30),( 5,50)]

这是一个嵌套循环。这里有一种解决方案吗?

非常感谢

Ĵ

python numpy

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

如何在n维中给定固定幅度的角度向量转换为欧几里德坐标

因此,将极坐标(幅度,角度)转换为2D中的欧几里德坐标是直截了当的.

但是在n(比如n = 5)维度中,我有一个固定的幅度和一个随机角度矢量.如何将其转换为坐标的欧氏矢量?

amp = 0.5
n = 5
ang = np.random.rand(n) * 2* pi
Run Code Online (Sandbox Code Playgroud)

非常感谢

python math wolfram-mathematica

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

Jupyter,ipywidgets,如何使用下拉菜单刷新绘图

我有一个基于下拉值的绘图特定数据范围的下拉列表。但是,它会不断为输出创建新图,而不是刷新相同的图。请帮忙,这是一个单元格。我查了一个帖子,我可以在输出中进行绘图,但它似乎没有做任何事情。

from IPython.display import clear_output
out = widgets.Output()    
w = widgets.Dropdown(
    options=alist,
    description='List',
)
ax = plt.figure()


def on_change(change):
    global ax
    if change['name'] == 'value' and (change['new'] != change['old']):
        with out:
            ax = sns.boxplot(data = mydata[change['new']])
            plt.show()

w.observe(on_change)

display(w)
out
Run Code Online (Sandbox Code Playgroud)

python matplotlib jupyter

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