如何添加循环多个图像保存到一个特定的文件夹吗?
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);
结束
结束
答案(1)
图像分析
2022年6月12日
试一试
道具= regionprops (I8,的边界框(“大小),“重心”);
%从结构提取到更方便的二维矩阵。
allXyCentroids = vertcat (props.Centroid)% n除以2的所有列表(x, y)质心坐标。
allBBs = vertcat (props.BoundingBox)% N-by-4矩阵的边界框。每一行是一个盒子。