Aitee 2023-10-26 16:31 采纳率: 91.7%
浏览 9
已结题

matlab导入图片文件,我想要在不改变相关代码的前提导入图片地址:D:\附件3

matlab上不知道怎么导入图片文件,请指教。

%% II. 导入bmp格式图片,基于阈值将图像转换为二值图像,取二值图像前后各一列
for i = 0:208
    if i<10
        pict(i+1,:)=['00',num2str(i),'.bmp'];
    elseif i<100
        pict(i+1,:)=['0',num2str(i),'.bmp'];
    else
        pict(i+1,:)=[num2str(i),'.bmp'];
    end
    a = imread(pict(i+1,:));
    thresh = graythresh(a);
    b = imbinarize(a, thresh);
    c3 = mean(b,2);
    X(i+1,:)=c3';
end
  • 写回答

2条回答 默认 最新

  • 呈两面包夹芝士 2023-10-26 17:35
    关注

    引自 讯飞星火 如有帮助 还望采纳
    在MATLAB中,你可以使用imread函数来导入图片文件。以下是一个示例代码,演示如何导入bmp格式的图片文件,并根据阈值将其转换为二值图像,并取二值图像前后各一列:

    % 定义变量
    pict = zeros(209, 1);  % 存储图片文件名的数组
    X = zeros(209, 1);     % 存储处理后的数据
    
    % 循环导入图片并进行处理
    for i = 0:208
        if i < 10
            pict(i+1, :) = ['00', num2str(i), '.bmp'];
        elseif i < 100
            pict(i+1, :) = ['0', num2str(i), '.bmp'];
        else
            pict(i+1, :) = [num2str(i), '.bmp'];
        end
        
        % 读取图片
        a = imread(pict(i+1, :));
        
        % 将图片转换为灰度图
        gray_a = rgb2gray(a);
        
        % 根据阈值进行二值化处理
        thresh = graythresh(gray_a);
        b = imbinarize(gray_a, thresh);
        
        % 计算二值图像的平均值
        c3 = mean(b, 2);
        
        % 将结果存储到X数组中
        X(i+1, :) = c3';
    end
    

    上述代码首先定义了两个变量pictX,分别用于存储图片文件名和处理后的数据。然后通过循环遍历每个图片文件,使用imread函数读取图片,并将其转换为灰度图。接下来,根据阈值进行二值化处理,并计算二值图像的平均值。最后,将结果存储到X数组中。

    请注意,上述代码中的graythreshimbinarize函数是MATLAB内置的函数,用于计算灰度阈值和进行二值化处理。如果你的环境中没有这些函数,可能需要安装相应的工具箱或自定义实现这些函数。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 11月4日
  • 已采纳回答 10月27日
  • 创建了问题 10月26日

悬赏问题

  • ¥60 ESP32怎么烧录自启动程序
  • ¥50 html2canvas超出滚动条不显示
  • ¥15 java业务性能问题求解(sql,业务设计相关)
  • ¥15 52810 尾椎c三个a 写蓝牙地址
  • ¥15 elmos524.33 eeprom的读写问题
  • ¥15 使用Java milo连接Kepserver服务端报错?
  • ¥15 用ADS设计一款的射频功率放大器
  • ¥15 怎么求交点连线的理论解?
  • ¥20 软件开发方法学习来了
  • ¥15 微信小程序商城如何实现多商户收款 平台分润抽成