我有一张图片,我将其转换为矢量并绘制:
img = imread(image.png');
grayImage = rgb2gray(img);
grayImage(2:2:end,:)=fliplr(grayImage(2:2:end,:));
B = rot90(grayImage);
C = flipud(B);
[x,y]=size(C);
vector = reshape(C ,1,x*y);
plot(vector);
问题在于虽然我可以在视觉上看到波浪图案,但会发生很多噪音。通过噪声我的意思是信号迅速上下波动,最终形成正弦波,但我希望能够将每个尖峰的波峰彼此连接起来,以创建连续的波浪模式。如果有人理解我想要做的事情,我们将不胜感激。
提前谢谢。
答案 0 :(得分:0)
不是100%肯定您提出的问题,但medfilt1
中值滤镜功能可能是您正在寻找的内容,它是1D平滑滤镜。示例用法是:
vector_filt = medfilt1(vector);
查看http://www.mathworks.com/help/signal/ref/medfilt1.html上的文档和示例。
答案 1 :(得分:0)
我认为在矢量上执行高斯卷积可以解决您的问题。这是一个堆栈溢出问题的链接,它对如何在matlab中进行高斯卷积有一个非常好的答案:Gaussian Filter on a vector in Matlab