【问题标题】:Being able to read images from any directory能够从任何目录读取图像
【发布时间】:2016-02-18 07:56:24
【问题描述】:

我是 Matlab 新手,在读取图像和处理目录之类的东西时遇到了一些问题。我有一个任务,我要编写一个脚本,将非灰度图像转换为灰度(例如,如果图像是真彩色,则转换为灰度)。

这是我的代码:

img = uigetfile('*');
imgx = imfinfo(img);


imgx.ColorType
if imgx.ColorType == 'truecolor'
   img = imread(img);
   img = rgb2gray(img);
end

但是,我最终在以下方面得到了分数:

“仅当图像与脚本位于同一文件夹中时才有效”

我意识到我的脚本仅适用于位于 MATLAB 路径上的文件夹中的图像,所以我不知道这是否与他所说的不同,或者这是否是他的意思。我假设他希望能够选择您计算机上的任何图像以便能够读取和执行操作,但我不知道如何处理这个问题。谁能帮帮我?

【问题讨论】:

    标签: matlab image-processing


    【解决方案1】:

    问题在于img = uigetfile('*') 仅将文件名作为字符串返回。要使用 matlab 文件夹以外的文件夹中的图片,您需要提取完整路径。您可以使用以下方法执行此操作:

    [fileName, folderName] = uigetfile('*');
    img=fullfile(folderName, fileName);
    imgx = imfinfo(img);
    

    在这个小改动之后,你的其余代码应该可以工作了

    【讨论】:

      猜你喜欢
      • 2014-10-24
      • 2013-09-04
      • 2020-10-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-02-12
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多