小编J_y*_*ang的帖子

"常态"是否等同于"欧几里德距离"?

我不确定"规范"和"欧几里德距离"是否意味着同样的事情.请你帮我解决这个问题.

我有一个nby m数组a,其中m> 3.我想计算第二个数据点a[1,:]与所有其他点(包括它自身)之间的Eculidean距离.所以我使用了np.linalg.norm,它输出了两个给定点的范数.但我不知道这是否是获得ED的正确方法.

import numpy as np

a = np.array([[0, 0, 0 ,0 ], [1, 1 , 1, 1],[2,2, 2, 3], [3,5, 1, 5]])
N = a.shape[0] # number of row
pos = a[1,:] # pick out the second data point. 
dist = np.zeros((N,1), dtype=np.float64)

for i in range(N):
    dist[i]= np.linalg.norm(a[i,:] - pos)
Run Code Online (Sandbox Code Playgroud)

python arrays math numpy euclidean-distance

22
推荐指数
2
解决办法
3万
查看次数

OpenCV从blob检测返回关键点坐标和区域,Python

我按照blob检测示例(使用cv2.SimpleBlobDetector)并成功检测到二进制图像中的斑点.但后来我不知道如何提取关键点的坐标和面积.以下是blob检测的代码:

# I skipped the parameter setting part. 
    blobParams = cv2.SimpleBlobDetector_Params()
    blobVer = (cv2.__version__).split('.')
    if int(blobVer[0]) < 3:
        detector = cv2.SimpleBlobDetector(blobParams)
    else:
        detector = cv2.SimpleBlobDetector_create(blobParams)

    # Detect Blobs
    keypoints_black = detector.detect(255-black_blob)
    trans_blobs = cv2.drawKeypoints(gray_video_crop, \
        keypoints_white, np.array([]), (0,0,255), cv2.DRAW_MATCHES_FLAGS_DRAW_RICH_KEYPOINTS)
Run Code Online (Sandbox Code Playgroud)

因此变量keypoints_black包含blob的信息.当我打印变量时,它看起来像这样(发现了2个blob):

KeyPoint 0x10b10b870, KeyPoint 0x10b1301b0
Run Code Online (Sandbox Code Playgroud)

那么如何获得关键点及其区域的质心坐标,以便我可以将它们作为osc消息发送以进行交互.

python opencv blob image-processing keypoint

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

tmux 识别了 Conda env 但仍然使用默认的 python

我在 Tmux 中使用 anaconda 环境时遇到问题。我在 OSX 上。

我先来

tmux 
Run Code Online (Sandbox Code Playgroud)

然后激活 Conda 环境:

conda activate myenv
Run Code Online (Sandbox Code Playgroud)

此时,我conda info显示了正确的活动环境和正确的位置。但是which python还是指向默认的/usr/bin/python

.bash_profile我安装时,anaconda 添加了这些行。所以我想我需要添加一些东西让终端找到正确的python路径?

# added by Anaconda3 5.3.1 installer
# >>> conda init >>>
# !! Contents within this block are managed by 'conda init' !!
__conda_setup="$(CONDA_REPORT_ERRORS=false '/Users/jiajunyang/anaconda3/bin/conda' shell.bash hook 2> /dev/null)"
if [ $? -eq 0 ]; then
    \eval "$__conda_setup"
else
    if [ -f "/Users/username/anaconda3/etc/profile.d/conda.sh" ]; then
        . "/Users/username/anaconda3/etc/profile.d/conda.sh"
        CONDA_CHANGEPS1=false conda activate base
    else …
Run Code Online (Sandbox Code Playgroud)

python tmux anaconda

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

Python gTTS,有没有办法改变语音的速度

似乎在 gTTS 上,除了缓慢的参数之外,没有其他选项可以更改文本到语音的语音。

我想将声音速度加快 5%。关于我该如何做有什么建议吗?

最好的。

tts_de = gTTS("Hallo, guten tag.", lang = 'de')
tts_de.save("s.mp3")
Run Code Online (Sandbox Code Playgroud)

python gtts

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

Python,Matplotlib,Scatter plot,更改点击点上的颜色

所以我有一个简单的散点图,有一个选择器事件.我想用鼠标更改我点击的数据点的颜色.我的代码将改变整个数组的颜色.我怎样才能改变一个特定点?谢谢

import sys
import numpy as np
import matplotlib.pyplot as plt    
testData = np.array([[0,0], [0.1, 0], [0, 0.3], [-0.4, 0], [0, -0.5]])
    fig, ax = plt.subplots()
    sctPlot, = ax.plot(testData[:,0], testData[:,1], "o", picker = 5)
    plt.grid(True)
    plt.axis([-0.5, 0.5, -0.5, 0.5])

def on_pick(event):
    artist = event.artist
    artist.set_color(np.random.random(3))
    print "click!"
    fig.canvas.draw()

fig.canvas.mpl_connect('pick_event', on_pick)
Run Code Online (Sandbox Code Playgroud)

python plot matplotlib

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

如何使用排除对Numpy数组进行子集化

在 Numpy 中,您可以通过提供列表或整数来对某些列进行子集化。例如:

a = np.ones((10, 5))

a[:,2] or a[:,[1,3,4]]
Run Code Online (Sandbox Code Playgroud)

但是怎么排除呢?它返回除 2 或 [1,3,4] 之外的所有其他列。

原因是我想让所有其他列为零,除了一个或选定列的列表,例如:

a[:, exclude(1)] *= 0
Run Code Online (Sandbox Code Playgroud)

我可以生成一个具有相同形状的新零数组,然后将特定列分配给新变量。但我想知道是否有更有效的方法

谢谢

python numpy

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

OpenCV 轨迹栏,如何在轨迹栏窗口上显示最大值、最小值和当前值

我如何要求在轨迹栏窗口上显示条的范围(最大值,最小值)和当前指向值?这是使用轨迹栏的示例。

# trackbar
import cv2
import numpy as np

def nothing(x):
    pass

img = np.zeros((300,512,3), np.uint8)
cv2.namedWindow('image')

# Create trackbars

cv2.createTrackbar('R', 'image', 255, 255, nothing)
cv2.createTrackbar('G', 'image', 0, 255, nothing)
cv2.createTrackbar('B', 'image', 0, 255, nothing)

# Create switch for on/off

switch = '0: OFF \n1: ON'
cv2.createTrackbar(switch, 'image', 0, 1, nothing)

while(1):
    cv2.imshow('image',img)
    k = cv2.waitKey(1) & 0xFF
    if k == 27:   # 27 is Escape
        break
    r = cv2.getTrackbarPos('R','image')
    g = cv2.getTrackbarPos('G','image')
    b = cv2.getTrackbarPos('B','image')
    s = cv2.getTrackbarPos(switch,'image')

    if …
Run Code Online (Sandbox Code Playgroud)

python opencv

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

如何为轴添加第二行标签

我试图在不同类别中绘制一组调查问题。

如图所示,Xlabel是每个问题的名称。但是我想在类别名称的下面添加另一个标签:[一般信息,技术,心理]。无论如何做到这一点,而不是使用plt.text()手动将其放入。我可以做的另一种方法是为条形的基于类别的颜色编码添加图例。但是我认为添加第二个xlabel使其更易于阅读。

在此处输入图片说明

python matplotlib seaborn

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

ipywidgets,如何更改滑块的值显示精度

在jupyter中,我有以下代码使用ipywidgets为变量r创建一个滑块控件。

from ipywidgets import interact, interactive, fixed, interact_manual
import ipywidgets as widgets

r = 0.9992
def sl(r=0.9992):
    global ar
    ar = r

interact(sl, r=(0.999, 1, 0.0001))
Run Code Online (Sandbox Code Playgroud)

它可以工作,但问题是滑块值的显示四舍五入到小数点后两位。结果,显示屏始终显示1.00。

在此处输入图片说明

有什么方法可以显示其实际值?

python ipython jupyter ipywidgets

5
推荐指数
2
解决办法
1201
查看次数

matplotlib圆,动画,如何删除动画中的旧圆

我正在尝试使用Matplotlib的圆和动画从选定的数据点模拟圆形冲击波的动画。但是我想不出一种方法来删除每个新框架中的旧圆圈。结果,随着半径的增加,我在画布上绘制了越来越多的圆圈-像这样:

在此处输入图片说明

关于在matplotlib图上动画化圆形冲击波有什么建议吗?

到目前为止,我的代码是:

import numpy as np
import matplotlib.pyplot as plt
import matplotlib.animation as animation

testData = np.random.rand(100,2)-[0.5, 0.5]

fig, ax = plt.subplots()
def init():
    fig.clf()
    sctPlot, = ax.plot(testData[:,0], testData[:,1], ".")

# i is the radius
def animate(i):
    init()
    q = 20 #initial index for the starting position
    pos = testData[q,:]
    circle1=plt.Circle(pos,i,color='r',fill=False, clip_on = False)
    fig.gca().add_artist(circle1)

def init():
    sctPlot, = ax.plot(testData[:,0], testData[:,1], ".")
    return sctPlot,

ani = animation.FuncAnimation(fig, animate, np.arange(0.4, 2, 0.1), init_func=init,
    interval=25, blit=False)
plt.show()
Run Code Online (Sandbox Code Playgroud)

python matplotlib

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