You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Matlab中基于CNN的GTSDB交通标志检测图像Resize问题求助

问题解决:Matlab CNN交通标志检测图像尺寸与通道不匹配报错

核心问题分析

报错信息The training images are of size 30×29×3 but the input layer expects images of size 28×28×1明确指出两个关键不匹配:

  • 尺寸不符:训练图像是30×29,但CNN输入层要求28×28
  • 通道不符:训练图像是3通道彩色图(×3),但输入层要求单通道灰度图(×1)
    你当前的resize代码将图像改为240×240,完全不符合输入层要求,这是报错的根本原因。

修正后的批量处理代码

folderName = 'Test_rm';
srcDir = fullfile(folderName);
% 修正路径拼接逻辑,避免出现无效路径
srcFiles = dir(fullfile(srcDir, '*.jpeg'));

for i = 1:length(srcFiles)
    % 正确拼接图像文件路径
    filename = fullfile(srcDir, srcFiles(i).name);
    im = imread(filename);
    
    % 1. 将彩色图转为单通道灰度图
    if size(im,3) == 3
        im = rgb2gray(im);
    end
    
    % 2. 将图像尺寸调整为输入层要求的28×28
    k = imresize(im, [28 28]);
    
    % 保存处理后的图像,添加前缀避免覆盖原始数据
    newfilename = fullfile(srcDir, ['processed_', srcFiles(i).name]);
    imwrite(k, newfilename, 'jpeg');
end

额外注意事项

  • 不要直接覆盖原始图像:代码中添加processed_前缀,防止误删未处理的原始数据
  • 同步输入层配置:如果后续修改CNN输入层的尺寸或通道要求,需同步调整代码中的对应参数
  • 检查图像格式:确保目标文件夹中只有.jpeg格式图像,避免循环中出现读取错误

内容的提问来源于stack exchange,提问作者Iuliana

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.18 00:12:38