Matlab中URL网络图象显示

在Matlab中>>help+函数名,给我们提供很多便利,有时候对于新手来说并不一定可以解决问题,现在把自己就关于URL网络图片加载和显示的问题及解决记录如下,供以后学习参考:

Matlab中的imread()函数可以读取 本路径下的图片,其他路径下的图片和网络URL图片(官方关于URL的描述是这样的:[...] = imread(URL,...) reads the image from an Internet URL. The URL must include the protocol type (e.g., http://).),然而在尝试中遇到很多问题:1、随便上百度搜索一张图片URL为:(http://image.baidu.com/search/detail?ct=503316480&z=0&ipn=d&word=csdn&step_word=&pn=1&spn=0&di=123047840850&pi=&rn=1&tn=baiduimagedetail&is=0%2C0&istype=0&ie=utf-8&oe=utf-8&in=&cl=2&lm=-1&st=-1&cs=397280381%2C1459268881&os=2958818841%2C4203801887&adpicid=0&ln=1044&fr=&fmq=1441678914316_R&ic=0&s=undefined&se=&sme=&tab=0&width=&am

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是使用 MATLAB 实现卷积神经网络进行图像分类识别的代码示例: 1. 加载数据 首先,需要将数据加载到 MATLAB 。这里使用 CIFAR-10 数据集作为示例。可以使用以下代码将数据集下载到本地: ```matlab url = 'https://www.cs.toronto.edu/~kriz/cifar-10-matlab.tar.gz'; filename = 'cifar-10-matlab.tar.gz'; datafolder = 'cifar-10-batches-mat'; websave(filename,url); untar(filename,datafolder); ``` 然后,使用以下代码将训练集和测试集加载到 MATLAB : ```matlab % 加载训练集 traindata = []; trainlabels = []; for i=1:5 filename = fullfile(datafolder,sprintf('data_batch_%d.mat',i)); load(filename); traindata = [traindata; data]; trainlabels = [trainlabels; labels]; end % 加载测试集 filename = fullfile(datafolder,'test_batch.mat'); load(filename); testdata = data; testlabels = labels; ``` 2. 数据预处理 在训练模型之前,需要对数据进行预处理。这里使用的是简单的归一化处理,将像素值缩放到 [0,1] 范围内: ```matlab % 数据归一化 traindata = double(traindata) / 255; testdata = double(testdata) / 255; ``` 3. 定义卷积神经网络模型 接下来,需要定义卷积神经网络模型。这里使用的是简单的 LeNet-5 模型: ```matlab layers = [ imageInputLayer([32 32 3]) convolution2dLayer(5,6,'Padding','same') reluLayer maxPooling2dLayer(2,'Stride',2) convolution2dLayer(5,16,'Padding','same') reluLayer maxPooling2dLayer(2,'Stride',2) fullyConnectedLayer(120) reluLayer fullyConnectedLayer(84) reluLayer fullyConnectedLayer(10) softmaxLayer classificationLayer]; ``` 4. 指定训练选项 在训练模型之前,需要指定训练选项。这里使用的是随机梯度下降算法进行训练: ```matlab options = trainingOptions('sgdm', ... 'MaxEpochs',20, ... 'InitialLearnRate',0.01, ... 'MiniBatchSize',128, ... 'Shuffle','every-epoch', ... 'Verbose',false, ... 'Plots','training-progress'); ``` 5. 训练模型 有了数据和模型,就可以开始训练模型了。使用以下代码可以训练模型: ```matlab net = trainNetwork(traindata, categorical(trainlabels), layers, options); ``` 6. 测试模型 训练完成后,可以使用以下代码对模型进行测试: ```matlab predictedlabels = classify(net, testdata); testaccuracy = sum(predictedlabels == categorical(testlabels)) / numel(testlabels); fprintf('Test Accuracy: %f\n', testaccuracy); ``` 完整的代码示例如下: ```matlab % 下载数据集 url = 'https://www.cs.toronto.edu/~kriz/cifar-10-matlab.tar.gz'; filename = 'cifar-10-matlab.tar.gz'; datafolder = 'cifar-10-batches-mat'; websave(filename,url); untar(filename,datafolder); % 加载训练集 traindata = []; trainlabels = []; for i=1:5 filename = fullfile(datafolder,sprintf('data_batch_%d.mat',i)); load(filename); traindata = [traindata; data]; trainlabels = [trainlabels; labels]; end % 加载测试集 filename = fullfile(datafolder,'test_batch.mat'); load(filename); testdata = data; testlabels = labels; % 数据归一化 traindata = double(traindata) / 255; testdata = double(testdata) / 255; % 定义卷积神经网络模型 layers = [ imageInputLayer([32 32 3]) convolution2dLayer(5,6,'Padding','same') reluLayer maxPooling2dLayer(2,'Stride',2) convolution2dLayer(5,16,'Padding','same') reluLayer maxPooling2dLayer(2,'Stride',2) fullyConnectedLayer(120) reluLayer fullyConnectedLayer(84) reluLayer fullyConnectedLayer(10) softmaxLayer classificationLayer]; % 指定训练选项 options = trainingOptions('sgdm', ... 'MaxEpochs',20, ... 'InitialLearnRate',0.01, ... 'MiniBatchSize',128, ... 'Shuffle','every-epoch', ... 'Verbose',false, ... 'Plots','training-progress'); % 训练模型 net = trainNetwork(traindata, categorical(trainlabels), layers, options); % 测试模型 predictedlabels = classify(net, testdata); testaccuracy = sum(predictedlabels == categorical(testlabels)) / numel(testlabels); fprintf('Test Accuracy: %f\n', testaccuracy); ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值