在MATLAB中以.tif格式保存图像

时间:2017-04-29 08:56:41

标签: matlab graphics computer-vision

我无法以.tif格式保存具有不同名称的多个图像。 这是我目前的代码:

srcFiles = dir('path/*.tif');
for i = 1 : length(srcFiles)
  img = strcat('path/',srcFiles(i).name);
  img = imread(img);
  figure, img = imshow(img(:,:,3));
  colormap gray;
  a = strcat(srcFiles(i).name, '-run.tif');
  imwrite(img, a,'tiff');
end

我收到以下错误:

Error using imwrite (line 420)
Expected DATA to be one of these types:

numeric, logical

Instead its type was matlab.graphics.primitive.Image.

我知道我没有保存图像数组。但是,由于我必须致电colormap gray,我不知道该怎么做。此外,我使用imwrite执行此操作,因为这会消除手动保存时保存的白色边框。有什么想法吗?

1 个答案:

答案 0 :(得分:0)

在3个后续行中,您正在更改变量img的类型:

这里是一个char数组:

img = strcat('path/',srcFiles(i).name);

接下来是数字数组(图像):

img = imread(img);

最后它是一个图形句柄:

figure, img = imshow(img(:,:,3));

为了保存此图片,您需要提供{{1>} 数字数组,最佳做法是为这些变量使用不同的名称,例如:

imwrite