I = imread('smallcat.tif');
se = strel('ball',5,5)
se = strel('ball',5,5)
I2 = imdilate(I,se);%膨胀图像
subplot(1,2,1);
imshow(I);
xlabel('(a)原始图像');
subplot(1,2,2);
imshow(I);
xlabel('(b)原始图像');
错误使用 images.internal.imageDisplayValidateParams>validateCData (第 118 行)
多平面图像的输入项必须是大小为 MxNx3 的 RGB 图像。
出错 images.internal.imageDisplayValidateParams (第 30 行)
common_args.CData = validateCData(common_args.CData,image_type);
出错 images.internal.imageDisplayParseInputs (第 79 行)
common_args = images.internal.imageDisplayValidateParams(common_args);
出错 imshow (第 253 行)
images.internal.imageDisplayParseInputs({'Parent','Border','Reduce'},preparsed_varargin{:});
出错 Untitled (第 7 行)
imshow(I);
解决方法:
1 这个属于 RGBA 四通道的图像。A一般代表透明度。
简单点的话,直接删除(如果A的元素大多数为1或255的话)
RGB=RGBA(:,:,1:3)
2 你用个for循环,把4维的图放到一个N个三维的RGB图就可以了
修改之后的代码
I = imread('smallcat.tif');
I1=I(:,:,1:3)
se = strel('ball',5,5)
se = strel('ball',5,5)
I2 = imdilate(I1,se);%膨胀图像
subplot(1,2,1);
imshow(I1);
xlabel('(a)原始图像');
subplot(1,2,2);
imshow(I2);
xlabel('(b)原始图像');
读取地址是在matlab的文件显示路径下
把图片放到该地址下即可读取
利用matlab读取指定路径下的图像
%% 读入指定路径imgFolder下的图像imgName
imgFolder = 'F:\博\快盘\图像+数据\images\文章实验图'; %指定路径
imgName = 'tile3_24.png'; %指定路径下的图像的名字
% read the image
imgInput= imread(fullfile(imgFolder,imgName)); %读入图像