MatLab使用数据库工具箱将图像保存到数据库

时间:2013-10-25 15:04:18

标签: mysql sql database matlab ms-access-2013

是否可以使用MatLab将图像插入或保存到数据库表?

这是我的代码:

%Code for Database Login
conn = database('vlmsystem','admin','vlog');
indata = imread('C:\Users\Sony Vaio\Documents\Task\0.1 Systems\System 1 - edited\Appendix\images database\auto1.jpg');
a = getframe(h);
indata = a.cdata;
hgsave(h, 'tempfile.fig')
fid = fopen('tempfile.fig', 'r')
indata = fread(fid, inf, '*uint8')
fclose(fid)
s = size(indata);
bdata = reshape(indata,[],1);
x = conn.Handle
StatementObject = x.preparestatement(insertcommand);
StatementObject.setObject(1,bdata)
StatementObject.execute
close(StatementObject)
dbpath = 'C:\Users\Sony Vaio\Documents\Task\0.1 Systems\System 1 - edited\Appendix\vlogdbase.mdb';
tableName = 'vehicleLog';
colnames = {'date_time','plate_number','login_logout','physical_feature'}
colnames1 = {'date_time'}
colnames2 = {'plate_number'}
colnames3 = {'login_logout'}
colnames4 = {'physical_feature'}
dat = datestr(now);
pltno = (f);
lilo = 'login';
physf = {bdata}
coldata = {dat,pltno,lilo,}
insert(conn,tableName,colnames,coldata);
close(conn);

我收到了这个错误。

  

使用graphicsversion时出错输入不是有效的图形对象

     

使用MATLABClasses =在getframe(第50行)中出错   ~graphiaversion(parentFig,'handlegraphics');

     

牌照错误> StartKnop_Callback(第248行)a = getframe(h);

尝试复制此解决方案,但我似乎无法使其正常工作。这是link

编辑:修复代码....但是...如何将二进制数据插入数据库。 数据库中没有二进制选项。结果不会反映在表格中。

enter image description here

%Code for Database Login
conn = database('vlmsystem','admin','vlog');
indata = imread('C:\Users\Sony Vaio\Documents\Task\0.1 Systems\System 1 - edited\Appendix\images database\auto1.jpg');
s = size(indata);
bdata = reshape(indata,[],1);
dbpath = 'C:\Users\Sony Vaio\Documents\Task\0.1 Systems\System 1 - edited\Appendix\vlogdbase.mdb';
tableName = 'vehicleLog';
colnames = {'date_time','plate_number','login_logout','physical_feature'}
colnames1 = {'date_time'}
colnames2 = {'plate_number'}
colnames3 = {'login_logout'}
colnames4 = {'physical_feature'}
dat = datestr(now);
pltno = (f);
lilo = 'login';
physf = {bdata}
coldata = {dat,pltno,lilo,physf}
insert(conn,tableName,colnames,coldata);
close(conn);

1 个答案:

答案 0 :(得分:1)

请阅读您要复制的内容。

解决方案说:

  

或者,如果您有一个数字并想要保存它的快照,请使用以下命令:

您复制了两个块,一个读取文件,一个帽子使用getframe从句柄读取一个帧。