我如何调整图像存储在imageDatastore

279(30天)
我努力调整图像,使所有这些图像有理智的大小我尝试了每件事没有效果和功能augmenterImageDatastore不是availible所以如果你有一个解决方案,请帮我工作

接受的答案

Vijaya Lakshmi Chagi
Vijaya Lakshmi Chagi 2019年3月11日
嗨Rawan,
接下来的工作流程可以帮助你调整所有的图像大小相同(见底部示例代码):
1。编写一个自定义读取图像数据存储功能。
这个文档页面描述的ReadFcn imageDatastore对象: //www.tatmou.com/help/matlab/ref/matlab.io.datastore.imagedatastore.html butueui-1-ReadFcn
你可以从默认的“ReadFcn”开始,并复制一个不同的名称。然后,设置“ReadFcn”属性的数据存储自定义函数。
2。结束的时候定制ReadFcn,添加一行所需的图像大小调整图片的大小。例子:
data = imresize(数据,(224 224));
再次运行脚本,看问题是否解决。
3所示。如果你仍然得到错误信息,添加另一个行集的定制ReadFcn所有通道的图像具有相同数量最少的渠道。这条线应该在“imresize”线。例子:
data =数据(:,:,min(1:3,最后));
下面的代码是如何使用一个自定义的一个例子阅读功能如上所述。
成像= imageDatastore (imgPath);
成像。ReadFcn = @customReadDatstoreImage;
函数data = customReadDatastoreImage(文件名)
%从默认的函数代码:
onState =警告(“关闭”,“回溯”);
c = onCleanup(@()警告(onState));
data = imread(文件名);%添加行:
data =数据(:,:,min(1:3,最后));
data = imresize(数据,(224 224));
结束
3评论
Morio Nishigaki
Morio Nishigaki 2022年3月15日
@customReadDatstoreImage;- - > @customReadDat 一个 storeImage;
我想了一会儿……

登录置评。

答案(1)

穆尔塔扎汗博士
穆尔塔扎汗博士 2019年9月20日
% %调整图像数据存储读者使用自定义函数
clc,关闭所有、清晰所有
% %读取数据存储已经在MATLAB提供的
setDir = fullfile (toolboxdir (“愿景”),“visiondata”,“imageSets”);
imd = imageDatastore (setDir,“IncludeSubfolders”,真的,“LabelSource”,
“foldernames”);
% % - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
% %我们将使用“读”函数来读取数据存储的照片
% %首先调用读取返回的第一个图像
% %的第二个调用读取返回第二个图片,等等
我=读(imd);% %从imd读取第一个图像
图中,
次要情节(121);imshow(我);标题(第一图像,调整前的);轴;
% % - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
% %现在从这一点,读者使用自定义函数
洛桑国际管理发展学院。ReadFcn = @customreader;
% %重置数据存储的状态没有数据被读取。
重置(imd);
J =阅读(imd);% %再次阅读第一图像(因为我们重置读)
次要情节(122);imshow (J);标题(“调整后的第一形象,”);轴;
K =阅读(imd);% %读第二图像
L =阅读(imd);% %读第三形象
图中,
次要情节(121);imshow (K);标题(的第二图像,经过调整的);轴;
次要情节(122);imshow (L);标题(第三个图像,调整后的);轴;
% % - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
% %读者自定义图像数据存储函数的代码
函数data = customreader(文件名)
onState =警告(“关闭”,“回溯”);
c = onCleanup(@()警告(onState));
data = imread(文件名);
data =数据(:,:,min(1:3,最后));
data = imresize(数据,(64 64));
结束
% % - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

类别

找到更多的在读、写和修改图像帮助中心文件交换

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!