2_linux Создание и тестирование среды промышленной камеры Hikvision
2_linux Создание и тестирование среды промышленной камеры Hikvision

Тестовая платформа:

Ubuntu 18.04 на виртуальной машине VMWare

1. Информация о камере Hikvision

Загрузка данных: https://www.hikrobotics.com/cn.

Специальное программное обеспечение:

MVS — это официальное программное обеспечение Hikvision для управления камерой, реализованное с использованием SDK. Пакет компонентов Runtime представляет собой библиотеку и драйвер разработки SDK.

Я использовал две версии программного обеспечения, показанные на рисунке. После фактической установки среда выполнения MVS была 4.3.0. Позже я использовал библиотеки и файлы заголовков в MVS. Содержимое некоторых примеров можно просмотреть в папке doc. Официальные примеры более авторитетны.

Результаты после установки MVS:

Я использовал установку сценария вместо файла deb.

Шаги установки:

1>РазархивироватьMVS_STD_GML_V2.1.2_231225.zip

2>РазархивироватьMVS-2.1.2_x86_64_20231225.tar.gz

3>ВходитьMVS-2.1.2_x86_64_20231225середина,Просмотр установочных файлов INSTALL

После выполнения третьего шага нет необходимости проверять четвертый шаг: MVS запускается напрямую, образ может быть получен, и среда настроена нормально.

2. Отображение изображений с камеры с помощью Qt

Главное здесь – построение среды.

Qt использует только библиотеку libMvCameraControl.so, и программа может полностью использовать эту библиотеку.

Посмотреть официальные примерыTrigger_ImageCallback.cpp,Обнаружено, что связана только одна библиотека — libMvCameraControl.so.,MV_CC_Initialize() не определен после компиляции,Судя по предыдущему опыту, эта функция не использовалась.,Тогда сначала заблокируйте его и не используйте.,Это первая ловушка. Затем полностью скопируйте предыдущую программу Windows,компилироватьOK。бегать,Сообщить об ошибке,Невозможно выполнить перечисление на устройство камеры,Сообщить об Верный код,0x8000000,Не удалось выполнить динамический импорт DLL.,проверено,Добавлены все библиотеки из /opt/MVS/lib/64/ в среду выполнения.,Вы можете обратиться к процессу настройки opencv3 в прошлый раз.,Вторая яма.

Можно запустить его еще раз.

Эффект такой:

Часть кода:

Язык кода:javascript
копировать
    //Распечатываем модель и серийный номер камеры
    qDebug() << QString::fromLocal8Bit(reinterpret_cast<char*>(pDeviceInfo->SpecialInfo.stGigEInfo.chModelName));
    qDebug() << QString::fromLocal8Bit(reinterpret_cast<char*>(pDeviceInfo->SpecialInfo.stGigEInfo.chSerialNumber));

    //Идентификация цветной камеры
    if('C' == pDeviceInfo->SpecialInfo.stGigEInfo.chModelName[12]){
        m_isColor = true;
        qDebug() << "==============color=================";
    }

    // Выберите устройство и создайте дескриптор
    nRet = MV_CC_CreateHandle(&handle, stDeviceList.pDeviceInfo[nIndex]);
    if (MV_OK != nRet){
        printf("MV_CC_CreateHandle fail! nRet [%x]\n", nRet);
        return false;
    }

    // Включите устройство
    nRet = MV_CC_OpenDevice(handle);
    if (MV_OK != nRet){
        printf("MV_CC_OpenDevice fail! nRet [%x]\n", nRet);
        return false;
    }

    // ch: оптимальный размер пакета для обнаружения сети (действительно только для камер GigE)
    if (stDeviceList.pDeviceInfo[nIndex]->nTLayerType == MV_GIGE_DEVICE){
        int nPacketSize = MV_CC_GetOptimalPacketSize(handle);
        if (nPacketSize > 0){
            nRet = MV_CC_SetIntValue(handle,"GevSCPSPacketSize",nPacketSize);
            if(nRet != MV_OK)
            {
                printf("Warning: Set Packet Size fail nRet [0x%x]!\n", nRet);
            }
        }
        else{
            printf("Warning: Get Packet Size fail nRet [0x%x]!\n", nPacketSize);
        }
    }
boy illustration
Учебное пособие по Jetpack Compose для начинающих, базовые элементы управления и макет
boy illustration
Код js веб-страницы, фон частицы, код спецэффектов
boy illustration
【новый! Суперподробное】Полное руководство по свойствам компонентов Figma.
boy illustration
🎉Обязательно к прочтению новичкам: полное руководство по написанию мини-программ WeChat с использованием программного обеспечения Cursor.
boy illustration
[Забавный проект Docker] VoceChat — еще одно приложение для мгновенного чата (IM)! Может быть встроен в любую веб-страницу!
boy illustration
Как реализовать переход по странице в HTML (html переходит на указанную страницу)
boy illustration
Как решить проблему зависания и низкой скорости при установке зависимостей с помощью npm. Существуют ли доступные источники npm, которые могут решить эту проблему?
boy illustration
Серия From Zero to Fun: Uni-App WeChat Payment Practice WeChat авторизует вход в систему и украшает страницу заказа, создает интерфейс заказа и инициирует запрос заказа
boy illustration
Серия uni-app: uni.navigateЧтобы передать скачок значения
boy illustration
Апплет WeChat настраивает верхнюю панель навигации и адаптируется к различным моделям.
boy illustration
JS-время конвертации
boy illustration
Обеспечьте бесперебойную работу ChromeDriver 125: советы по решению проблемы chromedriver.exe не найдены
boy illustration
Поле комментария, щелчок мышью, специальные эффекты, js-код
boy illustration
Объект массива перемещения объекта JS
boy illustration
Как открыть разрешение на позиционирование апплета WeChat_Как использовать WeChat для определения местонахождения друзей
boy illustration
Я даю вам два набора из 18 простых в использовании фонов холста Power BI, так что вам больше не придется возиться с цветами!
boy illustration
Получить текущее время в js_Как динамически отображать дату и время в js
boy illustration
Вам необходимо изучить сочетания клавиш vsCode для форматирования и организации кода, чтобы вам больше не приходилось настраивать формат вручную.
boy illustration
У ChatGPT большое обновление. Всего за 45 минут пресс-конференция показывает, что OpenAI сделал еще один шаг вперед.
boy illustration
Copilot облачной разработки — упрощение разработки
boy illustration
Микросборка xChatGPT с низким кодом, создание апплета чат-бота с искусственным интеллектом за пять шагов
boy illustration
CUDA Out of Memory: идеальное решение проблемы нехватки памяти CUDA
boy illustration
Анализ кластеризации отдельных ячеек, который должен освоить каждый&MarkerгенетическийВизуализация
boy illustration
vLLM: мощный инструмент для ускорения вывода ИИ
boy illustration
CodeGeeX: мощный инструмент генерации кода искусственного интеллекта, который можно использовать бесплатно в дополнение к второму пилоту.
boy illustration
Машинное обучение Реальный бой LightGBM + настройка параметров случайного поиска: точность 96,67%
boy illustration
Бесшовная интеграция, мгновенный интеллект [1]: платформа больших моделей Dify-LLM, интеграция без кодирования и встраивание в сторонние системы, более 42 тысяч звезд, чтобы стать свидетелями эксклюзивных интеллектуальных решений.
boy illustration
LM Studio для создания локальных больших моделей
boy illustration
Как определить количество слоев и нейронов скрытых слоев нейронной сети?
boy illustration
[Отслеживание целей] Подробное объяснение ByteTrack и детали кода