matlab将一幅PNG格式图像的RGB值全部不重复读出,并输出一个xls表,操作方法:
用画图软件,去掉不要的线型,保留趋势图,并保存到指定的文件里。如untitled.jpg。
用imread('untitled.jpg');读入untitled.jpg文件。
用BW2=bwperim(BW1,8);提取图像边缘数据。
用[rows,cols] = find(BW2==1);提取曲线x,y的坐标点。
用fprintf(fid,'%d %d\n',A);将x,y值写入untitled.txt,以便调用。
调用untitled.txt的数据,用plot(x,y)绘出图形。
clc;
clear;
a=imread('12.png');
[m,n,o]=size(a);
I=zeros(m*n,3);
k = 1;
for i=1:m
for j=1:n
I(k,:)=a(i,j,:);
k = k+1;
end
end
B = unique(I,'rows');
fid=fopen('123.xls','wt');
[m1 n1] =size(B);
for i=1:1:m1
for j=1:1:n1
if j==n1 %如果一行的个数达到n个则换行,否则空格
fprintf(fid,'%d\n',B(i,j));
else
fprintf(fid,'%d\t',B(i,j));
end
end
end
fclose(fid);
这个用matlab比较容易,c的没试过。