Преобразование изображений PNG в векторы объектов со значениями уровня серого в пикселях

#image-processing #matlab #pattern-recognition #feature-extraction

#обработка изображений #matlab #распознавание шаблонов #извлечение объектов

Вопрос:

Я новичок в MATLAB, и у меня есть набор изображений bmp, которые мне нужно преобразовать в значения уровня серого в пикселях в качестве векторов объектов изображения. Может кто-нибудь подсказать мне, как я могу это сделать? Мне нужно использовать эти значения уровня серого в пикселях в качестве объектов, а затем выполнять операции, подобные PCA / LDA. Я попробовал imread (), но он возвращает мне матрицу.. Я чувствую, что вектор объектов будет всего одним вектором строки.

С уважением,

Ответ №1:

imread() это правильный способ сделать это. Затем просто преобразуйте из матрицы в вектор. Например:

 >> X = randi(255, 10)

X =

   208    41   168   181   112    71   192   215    90    20
   231   248    10     9    98   174    66    65   212    14
    33   245   217    71   196   168   130   208   150   136
   233   124   239    12   203    42   179    63   141   199
   162   205   174    25    48    31   228   237   234   239
    25    37   194   210   125   128   245    90    73    34
    72   108   190   178   114   245   140    51   194   146
   140   234   101    81   165    87    36    65   193   120
   245   203   168   243   181   150    39   158    98     4
   247   245    44     9   193    58    66   121   145    86

>> X(:)

ans =

   208
   231
    33
   233
   162
    25
    72
   140
   245
   247
...
  

Затем вы можете просто объединить свои различные наблюдения вместе [] и выполнить PCA.

Комментарии:

1. спасибо за быстрый ответ. Итак, что мне делать, если imread () возвращает матрицу 72x96x3, должен ли я использовать rgb2gray ()? и если да, то 72 * 96 равно 6912, поэтому каждый вектор объектов строки будет иметь значения столбцов 6912, это нормально?

2. Правильно. PCA в конечном итоге будет ограничен доступной памятью, но он должен работать с таким количеством функций.

3. Кстати, вместо того, чтобы просто использовать все необработанные пиксельные данные, если вы хотите заглянуть в поле компьютерного зрения, есть много других интересных способов извлечения объектов из изображений. Удачи!

4. Это далеко от моей области знаний, но, например, ознакомьтесь с этим набором данных в превосходной базе данных UCI ML: archive.ics.uci.edu/ml/datasets/Corel Image Features

5. Кроме того, если вы заинтересованы в каком-либо обнаружении геометрических объектов, просто начните поиск в Google «распознавание лиц», и вы получите массу примеров.