Преобразуйте между типом изображения Simulink и матрицами

Можно импортировать данные изображения в Simulink® модель как матричные данные или как изображение с Simulink.ImageType тип данных. Image To Matrix и блоки Matrix To Image преобразуют между данными изображения Simulink и матричными данными. Используйте эти блоки, чтобы интегрировать данные изображения Simulink в алгоритм обработки изображений, который содержит блоки, которые не поддерживают данные изображения Simulink.

Скопируйте модель в качестве примера в перезаписываемое местоположение

Получить доступ к пути к папке в качестве примера, в MATLAB® командная строка, введите:

OpenCVSimulinkExamples;

Скопируйте модель ex_imagetypes в качестве примера к перезаписываемому местоположению папки.

Модель в качестве примера

Модель ex_imagetypes содержит два входных изображения, coins и peppers_bwВ виде матриц. Блок MATLAB function contrast_histeq преобразует оригинальные изображения в высококонтрастные изображения. Блок MATLAB Function работает с матричными данными только. Блок Image To Matrix преобразует данные изображения от блока switch в матрицу, чтобы позволить блоку MATLAB Function обработать его.Model screenshot.

Модель симулируется

На панели инструментов Simulink, во вкладке Simulation, выбирают Run, чтобы симулировать модель. Блок Video Viewer Video Viewer Original отображает оригинальные изображения, импортированные в модель и Video Viewer High Contrast отображает высоко контрастировавшие изображения после обработки изображений.

Video Viewer block displays processed image of coins.

Video Viewer block displays processed image of peppers.

Сгенерируйте код С++

Сгенерировать Код С++:

  1. На вкладке Apps на панели инструментов Simulink выберите Simulink Coder. На вкладке C++ Code, в списке Settings, выбирают C/C++ Code generation settings, чтобы открыть диалоговое окно Configuration Parameters и проверить эти настройки:

    • В панели Code Generation, под Target selection, Language установлен в C++.

    • В том же разделе Language standard установлен в C++11 (ISO).

  2. Нажмите кнопку Build и сгенерируйте код.

  3. Чтобы просмотреть сгенерированный код, на панели инструментов Simulink, нажимают кнопку Open Report.

В ex_imagetype.h файл, генератор кода объявляет Выходные порты корневого уровня Out_normmal как член класса C++ images::datatypes::Image реализованный MathWorks® и Out_highContrast как матричное изображение:

/* External outputs (root outports fed by signals with default storage) */
struct ExtY_ex_imagetypes_T {
  images::datatypes::Image Out_normal; /* '<Root>/Out_normal' */
  uint8_T Out_highContrast[73800];     /* '<Root>/Out_highContrast' */
};

Генератор кода инициализирует сигналы Simulink.ImageType тип данных в ex_imagetypes.c файл:

/* Model initialize function */
void ex_imagetypes::initialize()
{
  /* Registration code */
  constructImage(&ex_imagetypes_B.toImage, 1U, 246U, 300U, images::datatypes::
                 ColorFormat::Grayscale, images::datatypes::Layout::
                 ColumnMajorPlanar, images::datatypes::ClassUnderlying::Uint8);
  constructImage(&ex_imagetypes_Y.Out_normal, 1U, 246U, 300U, images::datatypes::
                 ColorFormat::Grayscale, images::datatypes::Layout::
                 ColumnMajorPlanar, images::datatypes::ClassUnderlying::Uint8);
  ...
}

Это - код для блока Matrix To Image:

/* ToImage: '<S2>/toImage' incorporates:
   *  Constant: '<Root>/coins'
   *  Outport: '<Root>/Out_normal'
   */
  imgData = imageGetDataFcn(&ex_imagetypes_Y.Out_normal);
  inPtr = &ex_imagetypes_ConstP.coins_Value[0];
  std::memcpy(imgData, inPtr, sizeof(uint8_T) * 73800U);

Это - код для блока Image To Matrix:

/* FromImage: '<S1>/fromImage' incorporates:
   *  Outport: '<Root>/Out_normal'
   */
  tmp_3 = ex_imagetypes_Y.Out_normal;
  imgData = imageGetDataFcn(&tmp_3);
  std::memcpy(&ex_imagetypes_B.fromImage[0], imgData, sizeof(uint8_T) * 73800U);

Когда модель содержит сигналы Simulink.ImageType тип данных, генератор кода производит дополнительные совместно использованные служебные файлы. Эти файлы объявляют и задают утилиты для построения, разрушают и возвращают информацию о meta атрибутах изображений:

  • image_type.h

  • image_type.cpp

Смотрите также

| |

Похожие темы

Для просмотра документации необходимо авторизоваться на сайте