维数组不一致问题

68(30天)
ALEKSANDROS
ALEKSANDROS 2023年5月16日在43分
评论道: 骑自行车的人 2023年5月19日12点
大家好。这是我的问题:我收到一个数据集的图像签名(特别是雪松数据集)和我的帮助下一个函数过程。我真的做了什么函数提取特征(11)特性。Ι想创建4补丁为每个图像更好地训练机器学习模型来区分假签名和真正的一个。当我运行代码得到这个错误:“要连接的数组的维度不一致”。下面,我将向您展示的主要代码伪造签名(我对原始签名相同的代码)和一段代码的功能:
主要代码:
clc;
清晰;
关闭所有;
格式紧凑的;
myFolder =”。/ full_forg ';
如果~ isdir (myFolder)
errorMessage = sprintf (错误:以下文件夹不存在:\ n % s的,myFolder);
uiwait (warndlg (errorMessage));
返回;
结束
filePattern = fullfile (myFolder,‘* . png”);
jpegFiles = dir (filePattern);
varray = [];
%为每一个虚假的形象
k = 1:长度(jpegFiles)
k
baseFileName = jpegFiles (k) . name;
fullFileName = fullfile (myFolder baseFileName);
流(1,“现在阅读% s \ n”,fullFileName);
%读取图像
im1 = imread (fullFileName);
% im1 = imresize (im1 (650 650));
im1 = imresize (im1 (1024 1024));
%创建补丁
patchit (im1 (512 512));
%阅读补丁
负载patches.mat;
%得到补丁的数量
(~,~,~,pn) =(补丁)大小;
v = [];
active_pixesls = [];
%为每一个补丁
我= 1:pn
im_patch =补丁(::,:,我);
[F, croped_image] = featureExtraction (im_patch);
v = [v F];
active_pixesls = [active_pixesls总和(croped_image (:)));
结束
响应= 0;%,因为它是一个虚假的形象
v = [v] active_pixesls反应;
varray = [varray;v];
结束
功能:
函数[Feat_Val, im_processed] = featureExtraction(我)
S = 512;
I2 = imresize(我,[S]);
dbstop如果错误;
dbstop如果警告;
% I3 = rgb2gray (I2);
I3 = im2gray (I2);
I3 = im2double (I3);
I3 = im2bw (I3);%将图像转换成黑白
% I3 = bwmorph (~ I3,“薄”,正)%细化图像
I3 = bwmorph (~ I3,“关闭”、正);
I3 = ~ I3;
谁能告诉我如何处理这个错误吗?
非常感谢! !
2的评论
ALEKSANDROS
ALEKSANDROS 2023年5月16日14:02
我得到它的错误命令“varray = [varray;v]”。完整的错误信息:“使用vertcat错误。维数组的连接是不一致的。”

登录置评。

接受的答案

骑自行车的人
骑自行车的人 2023年5月16日12:56
编辑:骑自行车的人 2023年5月16日在十四19
我们不能运行您的代码,因为我们没有所有的输入。我建议使用 调试器 停止你的代码行,和看到变量的样子。(它可能不会产生错误第一次通过循环。)
17日评论
骑自行车的人
骑自行车的人 2023年5月19日12点
第一,而不是粘贴屏幕截图,最好是剪切和粘贴代码本身,作为一个m文件或上传代码。如果你做一个截图,我们需要输入代码如果我们想试一试。
其次,我现在重复自己,你应该分享一个完整的例子,我可以粘贴到MATLAB复制你的错误。例如,在这里,我不知道输入错误引起的,我不知道v的大小,等等。我必须赚很多的猜测。再一次,让它尽可能简单的人来帮助你。
在这种特殊情况下,这是我的猜测:
如果v小于137个元素,看看发生了什么:
%定义一个向量,太短了
v =兰德(1125);
%使用您的代码
v =重塑(v (1:137), [137])
指数超过数组元素的数量。指标不得超过125人。
原因是代码试图访问不存在的元素。(在我的示例中,元素126:137不存在)。
我不知道如果在您的应用程序是有道理的,但如果向量太短,也许你可以添加南或零值,使其长度为137。

登录置评。

更多的答案(0)

类别

找到更多的在数值类型帮助中心文件交换

标签

社区寻宝

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

开始狩猎!