本文介绍如何用matlab控制Excel画画。
对于matlab和Excel你的认识不能仅仅停留在xlsread和xlswrite这两个函数上,其实matlab对Excel的操作远远不止于此,详情请见matlab和Excel的交互。
所谓在Excel中画画,无非就是通过填充Excel单元格的背景色实现像素点的表达,都可以通过matlab中的Excel.Application实现。try % 打开Excel
Excel=actxGetRunningServer('Excel.Application');
catch
Excel=actxserver('Excel.application');
end
% 设置Excel可见Excel.visible=1;
添加工作簿和工作表Workbook=Excel.Workbooks.Add;
Sheet1=Workbook.Sheets.Item(1);
下面实现图像的读取,这里用到了imread函数,可以读取图片的RGB值,用三维的数组存储,数据格式为uint8,但是Excel中是用24位的二进制表示颜色,前8位为B,中间8位为G,后8位为R,所以需要先用double强制转换数据类型。A=imread('图片路径');
A=double(A);
然后就是分别得到R,G,B:column=size(A,2);
row=size(A,1);
Red=A(:,:,1);
Green=A(:,:,2);
Blue=A(:,:,3);
为了使得颜色设置更加方便,这里我自己写了一个RGB函数,用于将RGB转换成Excel的格式:function out=RGB(Red,Green,Blue)
if nargin~=3
error('输入参数错误,RGB输入参数为3个,分别为RGB,0~255')
end
if length(Red)==length(Green)&length(Blue)==length(Green)
Red=Red;
Green=Green*2^8;
Blue=Blue*2^16;
out=Red+Green+Blue;
else
error('输入维度不匹配');
end
end
得到的输出能