相关疑难解决方法(0)

图像投影的采样率更高

我的软件应判断频谱带,并根据频段的位置,找到频段的峰值点和宽度.

在此输入图像描述

我学会了拍摄图像投影找到每个峰的宽度.


但我需要一种更好的方法来找到投影.

我使用的方法将1600像素宽的图像(例如1600X40)缩小为1600长的序列.理想情况下,我希望使用相同的图像将图像缩小为10000个长的序列.

我想要一个更长的序列,因为1600点提供的分辨率太低.单个点会导致较大的差异(如果从18到19判断一个波段,则存在4%的差异).

如何从同一图像获得更长的投影?

我使用的代码:https://stackoverflow.com/a/9771560/604511

import Image
from scipy import *
from scipy.optimize import leastsq

# Load the picture with PIL, process if needed
pic         = asarray(Image.open("band2.png"))

# Average the pixel values along vertical axis
pic_avg     = pic.mean(axis=2)
projection  = pic_avg.sum(axis=0)

# Set the min value to zero for a nice fit
projection /= projection.mean()
projection -= projection.min()
Run Code Online (Sandbox Code Playgroud)

python image image-processing

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

找到离散数据点的切线向量

我有一个在空间中最少有两个点的向量,例如:

A = np.array([-1452.18133319  3285.44737438 -7075.49516676])
B = np.array([-1452.20175668  3285.29632734 -7075.49110863])
Run Code Online (Sandbox Code Playgroud)

我想在沿着曲线的离散点处找到矢量的切线,gg是曲线的开始和结束.我知道如何在Matlab中做到这一点,但我想用Python做.这是Matlab中的代码:

A = [-1452.18133319  3285.44737438 -7075.49516676];
B = [-1452.20175668  3285.29632734 -7075.49110863];
points = [A; B];
distance = [0.; 0.1667];
pp = interp1(distance, points,'pchip','pp');
[breaks,coefs,l,k,d] = unmkpp(pp);
dpp = mkpp(breaks,repmat(k-1:-1:1,d*l,1).*coefs(:,1:k-1),d);
ntangent=zeros(length(distance),3);
for j=1:length(distance)
    ntangent(j,:) = ppval(dpp, distance(j));
end

%The solution would be at beginning and end:
%ntangent =
%   -0.1225   -0.9061    0.0243
%   -0.1225   -0.9061    0.0243    
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?我尝试使用numpy和scipy使用多种方法找到解决方案,例如

tck, u= scipy.interpolate.splprep(data)
Run Code Online (Sandbox Code Playgroud)

但是没有一种方法能满足我的要求.

python numpy vector scipy

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

标签 统计

python ×2

image ×1

image-processing ×1

numpy ×1

scipy ×1

vector ×1