干嘛走这么多的弯路呀,直接对绘图的原始数据进行分析不行么?从图像里准确提取曲线还是比较困难的。而且看你的程序是按照颜色分量提取的,我没有试,但是觉得要做到准确也是比较困难的
-----------------------------------------pic.m----------------------------------------------------
clear,close all;
I=imread('catch.bmp');
[y,x,z]=size(I);
I1=double(I);
for i=1:x
for j=1:y
if((I1(j,i,1)==0)&&(I1(j,i,2)==128)&&(I1(j,i,3)==64))
h1(i)=y-j; % h1(i)数组存储了图像中O1-A1各点数据的纵坐标
break;
end
end
end
plot(h1);hold on % 绘制O1-A1,O2-A2的图像
csvwrite('catch1.txt',h1);
-------------------------------------------t.m----------------------------------------------------
clear all;clc;close all;
Ts=0.0001;
fs=1/Ts;%采样率
t=0:Ts:0.0199;
x=2*square(2*pi*50*t,20);
N=length(x);%N是样点的个数,
fx=fft(x);
df=fs/(N-1);%频率分辨率在这里是表示谱图上一条谱线与下一条谱线之间的频率间隔,也是频域上横坐标的间隔。
%N是样点的个数,df是频率分辨率,df=fs/N,fs=100。fs=100是从那儿看出来的呢?是从t=-1:0.01:1中的0.01得到的。
n=0:(N-1)/2;
f=n*df;
subplot(211);
plot(t,x);grid;
subplot(212);
JueDuiZhi=abs(fx(n+1))*2/N;
bar(f,abs(fx(n+1))*2/N); grid;
c=fx(n+1);
[ 本帖最后由 eight 于 2007-9-19 10:04 编辑 ] |