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

有没有一种方法可以处理图像,以使沙子区域或多或少看起来像一个完美的正方形?
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)
非常感谢。
在我的 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 …
我正在尝试编写一个信号处理包,我想让用户创建一个自定义函数而无需访问类文件:
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 不是类的方法。但我不知道如何解决它。请指教。
谢谢
我想做的 pytest 将始终涉及短回溯(--tb=short)和报告跳过原因(-rsx)
因此,我不需要每次都执行 pytest --tb=short -rsx ,而是可以在某个地方指定它,也许是conftest.py?
谢谢
因此,当前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) 我有一个数据帧,它是通过将多个数据帧附加到一个长列表中生成的.如图所示,默认索引是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)
我想知道如何使用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?
我有两组坐标作为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)]
这是一个嵌套循环。这里有一种解决方案吗?
非常感谢
Ĵ
因此,将极坐标(幅度,角度)转换为2D中的欧几里德坐标是直截了当的.
但是在n(比如n = 5)维度中,我有一个固定的幅度和一个随机角度矢量.如何将其转换为坐标的欧氏矢量?
amp = 0.5
n = 5
ang = np.random.rand(n) * 2* pi
Run Code Online (Sandbox Code Playgroud)
非常感谢
我有一个基于下拉值的绘图特定数据范围的下拉列表。但是,它会不断为输出创建新图,而不是刷新相同的图。请帮忙,这是一个单元格。我查了一个帖子,我可以在输出中进行绘图,但它似乎没有做任何事情。
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)