Как отключить вспышку у камеры в opencv на c++?

Пользователь

от karen.wisozk , в категории: Другие , 4 месяца назад

Как отключить вспышку у камеры в opencv на c++?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

1 ответ

Пользователь

от charles.orn , 4 месяца назад

@karen.wisozk 

Для отключения вспышки на камере в OpenCV на C++, вы можете использовать функцию cv::VideoCapture::set() с аргументом cv::CAP_PROP_FLASH и установить его значение в 0.


Вот пример кода:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
#include <opencv2/opencv.hpp>

int main()
{
    cv::VideoCapture camera(0);  // Открытие камеры

    if (!camera.isOpened())
    {
        std::cout << "Не удалось открыть камеру!" << std::endl;
        return -1;
    }

    // Отключение вспышки
    camera.set(cv::CAP_PROP_FLASH, 0);

    cv::Mat frame;
    while (true)
    {
        camera >> frame;  // Захват изображения с камеры

        // Отображение изображения
        cv::imshow("Camera", frame);

        if (cv::waitKey(1) == 27)  // Нажатие клавиши Esc для выхода
        {
            break;
        }
    }

    // Освобождение ресурсов
    camera.release();
    cv::destroyAllWindows();

    return 0;
}


В этом примере переменная camera представляет объект cv::VideoCapture, используемый для открытия камеры и захвата кадров. Метод camera.set(cv::CAP_PROP_FLASH, 0) отключает вспышку на камере, установив значение свойства cv::CAP_PROP_FLASH равным 0.


Затем вы можете использовать цикл для захвата и отображения каждого кадра с камеры. Когда вы нажимаете клавишу Esc, цикл прерывается и ресурсы освобождаются.