powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / Получить frame (Opencv) и записать в bmp (cimg)
6 сообщений из 6, страница 1 из 1
Получить frame (Opencv) и записать в bmp (cimg)
    #38994763
bdm77
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день!

Я использую opencv (2.3.1) получаю stream из IP камеры .
Мне нужно полученный frame записать в bmp фай л, используя библиотеку Cimg .

Есть код:
Код: plaintext
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.
    Mat frame;
    VideoCapture cam("rtsp://admin:admin@192.168.2.228/defaultPrimary?streamType=u");
    while(true)
    {   
        if (!cam.read(frame))
            continue;

        count++;
        cimg_library::CImg<unsigned char>* m_frameData = new cimg_library::CImg<unsigned char>(1920, 1080, 1 , 3);

        if (frame.data)
        {
            cvtColor(frame, frameRGB, CV_BGR2RGB);
            uchar* pixelsRGB = frameRGB.data;

            for (unsigned int x = 0; x < frame.rows; x++)               
            {
                for (unsigned int y = 0; y < frame.cols; y++)   
                {                       
                    m_frameData->atXYZC(x,y,0,0) = (int) pixelsRGB[ y + x];
                    m_frameData->atXYZC(x,y,0,1) = (int)pixelsRGB [ y + x + 1];
                    m_frameData->atXYZC(x,y,0,2) = (int) pixelsRGB[ y + x + 2];
                }
            }

            std::string fileWrite = "C:\\Temp\\out" +count+ ".bmp";             
            m_frameData->save_bmp(fileWrite.c_str());

            delete m_frameData;
     }



В приложенном файле первая картинка что я получаю, вторая что должно быть.
М.б. кто то сталкивался ?

Заранее спасибо!
...
Рейтинг: 0 / 0
Получить frame (Opencv) и записать в bmp (cimg)
    #38994911
YesSql
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
bdm77,

Какой кодек выбран?
...
Рейтинг: 0 / 0
Получить frame (Opencv) и записать в bmp (cimg)
    #38994971
bdm77
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
YesSql,

Opencv использует ffmpeg..
...
Рейтинг: 0 / 0
Получить frame (Opencv) и записать в bmp (cimg)
    #38995026
YesSql
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
bdm77YesSql,

Opencv использует ffmpeg..
в этой комбинации какие-то проблемы были с H.264
...
Рейтинг: 0 / 0
Получить frame (Opencv) и записать в bmp (cimg)
    #38995040
bdm77
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
YesSql, были в OPENCV (2.3.1), но решил.

Видео он получает замечтальное.
Но вот где то проблема с математикой.

Нашел полурешение.


Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
.............
int step = *frameRGB.step.p; // 5760
 
          for (unsigned int x = 0; x < frameRGB.cols; x++)               
          {
                for (unsigned int y = 0; y < frameRGB.rows; y++)   
                {                       
                    m_frameData->atXYZC(x,y,0,0) = (int) pixelsRGB[step * y + x]; // увеличил на step
                    m_frameData->atXYZC(x,y,0,1) = (int)pixelsRGB [step * y + x + 1];
                    m_frameData->atXYZC(x,y,0,2) = (int) pixelsRGB[step * y + x + 2];
                }
            }

            std::string fileWrite = "C:\\Temp\\out" +count+ ".bmp";             
            m_frameData->save_bmp(fileWrite.c_str());

            delete m_frameData;



Получил вот такую картинку:
...
Рейтинг: 0 / 0
Получить frame (Opencv) и записать в bmp (cimg)
    #38995048
bdm77
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Картинка чб и не весь фрейм, а только часть его!!
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / Получить frame (Opencv) и записать в bmp (cimg)
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]