matlab imshow 多平面图像的输入项必须是大小为 MxNx3 的 RGB 图像,和imread读取路径以及特定路径修改

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)原始图像');

程序运行结果图:

关于imread读取文件

读取地址是在matlab的文件显示路径下

 把图片放到该地址下即可读取

利用matlab读取指定路径下的图像

%% 读入指定路径imgFolder下的图像imgName
imgFolder = 'F:\博\快盘\图像+数据\images\文章实验图'; %指定路径
imgName = 'tile3_24.png'; %指定路径下的图像的名字
% read the image
imgInput= imread(fullfile(imgFolder,imgName)); %读入图像
 

  • 6
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值