如何添加循环多个图像保存到一个特定的文件夹吗?

4视图(30天)
嗨。我运行这段代码。没有错误发生,但它只保存最后裁剪图像边界框而不是其他裁剪图像。通知你,在我的例子中,一个图像的边界框会产生一些裁剪图片,我把它命名为“obj”。与此同时“I12”裁剪的图像的大小。因此,我应该加入循环和循环的代码我应该写什么?请帮助我。提前谢谢。
srcFile = dir (“C: \ \用户用户\ \碎“五年规划\ Matlab文件\ cnPVG \ * . bmp的);
ck = 1:长度(srcFile)
filenamecn = strcat (“C: \ \用户用户\ \碎“五年规划\ Matlab文件\ cnPVG \ 'srcFile (ck) . name);
img_src = imread (filenamecn);
%边界框
imbwlabel = bwlabel (I8);% bwlabel只能以二进制(黑与白、双)的形象
%图;
% % imshow (label2rgb (imbwlabel));%这是重要的bcs有助于创建边界框
% %在图像彩色(uint8 unit16等)而不是二进制(黑与白)的形象
%
bboxes = regionprops (imbwlabel,的边界框(“大小));
[L, n] = bwlabel (I8);
bboxes = regionprops (I8,的边界框(“大小),“重心”);
%
%图;imshow(一块);%标题(“图像与边界框”);
形象了
持有
k = 1:长度(bboxes)
CurrBB = bboxes (k) .BoundingBox;
%分=猫(1、bboxes.BoundingBox);
%的阴谋(分(:1),分(:,2),g *)
矩形(“位置”,(CurrBB (1) CurrBB (2), CurrBB (3), CurrBB (4)],“EdgeColor”,“米”,“线宽”,2)
结束
持有
% %作物和补零
如果~ isempty (bboxes)
p = 1:长度(bboxes)
.BoundingBox CurrBB = bboxes (p);
obj = imcrop(一块,CurrBB);
[m, n, l] =大小(obj);
如果(> 227 | | n > 227)
obj = imresize (obj, 227年[227]);
结束
I12 = 0 (227227);
I12 = uint8 (I12);
i = 1: m
j = 1: n
t = 1:3
如果(> 227 | | n > 227)
obj = imresize (obj, 227年[227]);
其他的I12 (i, j, t) = obj (i, j, t);
结束
结束
结束
结束
路径= strcat (“C: \ \用户用户\ \碎“五年规划\ Matlab文件\ bbbPVG \ 'srcFile (ck) . name);
imwrite (I12、路径);
结束
%图;imshow (I12);
%图;imshow (obj);
结束
结束
8的评论
Erza Naziha
Erza Naziha 2022年6月13日
@Jan 感谢所有的解释。我省略了无用的部分,“img_src”你说。它减少了杂波。我认为它是有用的但尚未解决储蓄的部分。谢谢!

登录置评。

答案(1)

图像分析
图像分析 2022年6月12日
试一试
道具= regionprops (I8,的边界框(“大小),“重心”);
%从结构提取到更方便的二维矩阵。
allXyCentroids = vertcat (props.Centroid)% n除以2的所有列表(x, y)质心坐标。
allBBs = vertcat (props.BoundingBox)% N-by-4矩阵的边界框。每一行是一个盒子。
3评论

登录置评。

类别

找到更多的在图片帮助中心文件交换

社区寻宝

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

开始狩猎!