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

Я использую 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
29.06.2015, 13:21
    #38994911
YesSql
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получить frame (Opencv) и записать в bmp (cimg)
bdm77,

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

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

Opencv использует ffmpeg..
в этой комбинации какие-то проблемы были с H.264
...
Рейтинг: 0 / 0
29.06.2015, 14:44
    #38995040
bdm77
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получить frame (Opencv) и записать в bmp (cimg)
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
29.06.2015, 14:48
    #38995048
bdm77
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получить frame (Opencv) и записать в bmp (cimg)
Картинка чб и не весь фрейм, а только часть его!!
...
Рейтинг: 0 / 0
Форумы / C++ [игнор отключен] [закрыт для гостей] / Получить frame (Opencv) и записать в bmp (cimg) / 6 сообщений из 6, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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