相关疑难解决方法(0)

numpy linspace和numpy logspace之间的输出差异

Numpy linspace在指定的时间间隔内返回均匀间隔的数字.Numpy logspace返回的数字在对数刻度上均匀分布.

我不明白为什么numpy logspace经常从我设置的边界返回"超出范围"的值.在0.02和之间取数字2.0:

import numpy as np
print np.linspace(0.02, 2.0, num=20)
print np.logspace(0.02, 2.0, num=20)
Run Code Online (Sandbox Code Playgroud)

第一个输出是:

[ 0.02        0.12421053  0.22842105  0.33263158  0.43684211  0.54105263
  0.64526316  0.74947368  0.85368421  0.95789474  1.06210526  1.16631579
  1.27052632  1.37473684  1.47894737  1.58315789  1.68736842  1.79157895
  1.89578947  2.        ]
Run Code Online (Sandbox Code Playgroud)

这看起来很正确.但是,输出np.logspace()错误:

[   1.04712855    1.33109952    1.69208062    2.15095626    2.73427446
    3.47578281    4.41838095    5.61660244    7.13976982    9.07600522
   11.53732863   14.66613875   18.64345144   23.69937223   30.12640904
   38.29639507   48.68200101   61.88408121   78.6664358   100.        ]
Run Code Online (Sandbox Code Playgroud)

为什么输出1.047100.0

python arrays numpy

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

删除分段线(OpenCV、Python)

鉴于以下代码:

import numpy as np
import cv2

gray = cv2.imread('image.png')
edges = cv2.Canny(gray,50,150,apertureSize = 3)
cv2.imwrite('edges-50-150.jpg',edges)
minLineLength=100
lines = cv2.HoughLinesP(image=edges,rho=1,theta=np.pi/180, threshold=100,lines=np.array([]), minLineLength=minLineLength,maxLineGap=80)

a,b,c = lines.shape
for i in range(a):
    cv2.line(gray, (lines[i][0][0], lines[i][0][1]), (lines[i][0][2], lines[i][0][3]), (0, 0, 255), 1, cv2.LINE_AA)
    cv2.imwrite('houghlines.jpg', gray)
    cv2.imshow('img', gray)
    cv2.waitKey(0)
Run Code Online (Sandbox Code Playgroud)

我可以实现此(源)图像中的水平线:

源文件

这是结果:

结果

如何删除红色的行?我想要实现的是删除这些行,使图像更干净并可供另一个进程使用。代码取自此处

python opencv hough-transform

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

标签 统计

python ×2

arrays ×1

hough-transform ×1

numpy ×1

opencv ×1