Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何将HOG特征添加到矩阵(matlab)_Matlab_Image Processing_Matrix_Computer Vision_Matlab Cvst - Fatal编程技术网

如何将HOG特征添加到矩阵(matlab)

如何将HOG特征添加到矩阵(matlab),matlab,image-processing,matrix,computer-vision,matlab-cvst,Matlab,Image Processing,Matrix,Computer Vision,Matlab Cvst,在提取图像文件夹的HOG特征后,我想将所有这些结果添加到一个矩阵中。我怎么能做到?这是我在matlab中的代码: training_female = 'E:\Training Set\Female Images'; % read all images with specified extention, its jpg in our case filenames = dir(fullfile(training_female, '*.jpg')); % count total number of

在提取图像文件夹的HOG特征后,我想将所有这些结果添加到一个矩阵中。我怎么能做到?这是我在matlab中的代码:

training_female = 'E:\Training Set\Female Images';

% read all images with specified extention, its jpg in our case
filenames = dir(fullfile(training_female, '*.jpg'));

% count total number of photos present in that folder
total_images = numel(filenames);

for n = 1:total_images

% Specify images names with full path and extension    
full_name= fullfile(training_female, filenames(n).name);

% Read images
training_images = imread(full_name);
[featureVector, hogVisualization] = extractHOGFeatures(training_images);
figure (n)

    % Show all images
    imshow(training_images); hold on;                  
    plot(hogVisualization);
end
通过查看,调用
extractHOGFeatures
计算给定输入图像的
1 x N
向量。因为计算这个的输出大小可能有点麻烦,这也取决于为HOG检测器设置的参数,所以最好先创建一个空矩阵,并在每次迭代时动态连接特征。通常,为了提高性能,如果希望在迭代的基础上填充元素,您需要预先分配一个矩阵。不这样做会使性能略有下降,但考虑到您的情况,这是最适合的。您可能需要调整HOG参数,如果我们采用动态方式进行调整,那么就不必再为确定矩阵的总大小而头疼了

那就这样做吧。我已将
%//新的
标记放置在修改代码的位置:

training_female = 'E:\Training Set\Female Images';

% read all images with specified extention, its jpg in our case
filenames = dir(fullfile(training_female, '*.jpg'));

% count total number of photos present in that folder
total_images = numel(filenames);

featureMatrix = []; %// New - Declare feature matrix

for n = 1:total_images

    % Specify images names with full path and extension    
    full_name= fullfile(training_female, filenames(n).name);

    % Read images
    training_images = imread(full_name);
    [featureVector, hogVisualization] = extractHOGFeatures(training_images);

    %// New - Add feature vector to matrix
    featureMatrix = [featureMatrix; featureVector];
    figure(n);

    % Show all images
    imshow(training_images); hold on;                  
    plot(hogVisualization);
end
featureMatrix
将包含您的HOG特征,其中每行对应于每个图像。因此,对于特定图像
i
,您可以通过以下方式确定HOG特征:

feature = featureMatrix(i,:);
警告 我需要指出的是,上面的代码假设目录中的所有图像大小相同。如果不是,那么每个HOG调用的输出向量大小将不同。如果是这种情况,您将需要一个单元阵列来适应不同的大小

因此,请这样做:

training_female = 'E:\Training Set\Female Images';

% read all images with specified extention, its jpg in our case
filenames = dir(fullfile(training_female, '*.jpg'));

% count total number of photos present in that folder
total_images = numel(filenames);

featureMatrix = cell(1,total_images); %// New - Declare feature matrix

for n = 1:total_images

    % Specify images names with full path and extension    
    full_name= fullfile(training_female, filenames(n).name);

    % Read images
    training_images = imread(full_name);
    [featureVector, hogVisualization] = extractHOGFeatures(training_images);

    %// New - Add feature vector to matrix
    featureMatrix{n} = featureVector;
    figure(n);

    % Show all images
    imshow(training_images); hold on;                  
    plot(hogVisualization);
end
要访问特定图像的功能或图像
i
,请执行以下操作:

feature = featureMatrix{i};

代码在哪里?您尝试将其加载到矩阵中,但没有成功?我刚刚准备了上面的代码,用于读取和提取一组图像的特征。我需要帮助创建矩阵,并在其中添加猪的功能。我想这个页面可以帮助你:我已经接受了。真的再次感谢rayryeng先生。