首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在MATLAB中使用urlread()将图像发布到服务器

如何在MATLAB中使用urlread()将图像发布到服务器
EN

Stack Overflow用户
提问于 2012-02-29 17:18:42
回答 3查看 2.9K关注 0票数 2

我想使用XML人脸检测API (将图像发送到服务器,然后返回face.com字符串结果)。

我使用urlread(),它不能上传图像文件。

代码:

代码语言:javascript
复制
fid = fopen('T000.jpg');
im  = fread(fid,Inf,'*uint8');
fclose(fid);

urlread('http://api.face.com/faces/detect.xml','post',...
        {'api_key'      , MY_CODE,...
         'api_secret'   , MY_SECRET,...
         'detector'     , 'Normal',...
         'attributes'   , 'all',...
         'file'         , im}) 

但它会返回一个错误,因为MATLAB试图将图像编码为url。

注意:当我在网络上使用图片时,它可以工作(因为没有上传任何文件)。

代码语言:javascript
复制
urlread('http://api.face.com/faces/detect.xml','post',...
        {'api_key'      , MY_CODE,...
         'api_secret'   , MY_SECRET,...
         'detector'     , 'Normal',...
         'attributes'   , 'all',...
         'urls'         , 'http://0.tqn.com/d/beauty/1/0/x/3/1/halle_berry_pixie.jpg'}) 
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-02-29 20:19:39

我找到了答案。urlread() on the File Exchange的替代实现。

票数 1
EN

Stack Overflow用户

发布于 2012-02-29 19:10:47

不幸的是,您不能使用内置函数urlread。它只对POST请求使用application/x-www-form-urlencoded,并且face API需要multipart/form-data才能上传jpeg文件。您将不得不查看第三方工具

或者,您可以尝试编写自己的修改后的urlread函数。然而,Matlab没有比urlread更细粒度的访问。要解决这个问题,可以使用Java within Matlab。这些文档甚至包含一个URL example。基本上,您可以在Matlab解释器中创建Java对象并调用它们的方法。以下是Matlab中的Java示例:

代码语言:javascript
复制
string_builder = java.lang.StringBuilder('Bar'); %new is not used
string_builder.setCharAt(2, 'z');
java_string = string_builder.toString.toLowerCase; %brackets are optional
matlab_char = char(java_string); %matlab_char == 'baz'

祝你好运。

票数 2
EN

Stack Overflow用户

发布于 2015-12-31 07:22:48

Mathworks在新版本的Matlab中创建了webreadwebwrite来解决这个问题。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9496392

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档