Перейти к содержимому
Compvision.ru

Steve_g

Пользователи
  • Количество публикаций

    9
  • Зарегистрирован

  • Посещение

Репутация

0 Новичек

О Steve_g

  • Звание
    Новичок
  1. Прочитал - мое видение такое: struct RAWImage { std::vector<unsigned char> data; //чисто данные картинки после декомпрессии JPEG unsigned int width;//ширина JPEG unsigned int height;//высота JPEG unsigned int pixelBits; void* sourceImage;//указатель на буфер с исходным JPEG изображением, возвращаемый live555 }rawImage; cv::Mat matrixPre; cv::Mat matrixPost; unsigned short x, y, width, height;//они имеются в наличии cv::Rect rect(x,y,width,height);//прямоугольная область блоба int quality = 50;//качество matrixPre = cv::Mat(rawImage.height, rawImage.width, CV_8UC1, &(rawImage.data[0]));//НАДО ЛИ ТУТ ИСПОЛЬЗОВАТЬ cv::IMDECODE????? если НАДО - ПОСЛЕ этой строки? matrixPost = matrixPre(rect).clone();//вырезание из матрицы данных полученного блоба //теперь, очевидно, самый сок этого кода - получение массива байт JPEG полученной матрицы ??? std::vector<int> params;//4ый параметр функции params.push_back(CV_IMWRITE_JPEG_QUALITY); params.push_back(quality); vector<unsigned char> buf;//буфер под массив байт JPEG-a 3ий параметр - ВЕРНО?? //2ой параметр - очевидно matrixPost //1ый параметр - ".jpg" cv::imencode(".jpg", matrixPost, buf, params); //в итоге получаю массив байт JPEG-a скажите пожалуйста, что не верно я в этом куске говнокода сделал? ибо я не тестировал еще, связи с сервером нет(
  2. Спасибо большое, сейчас попробую)) потом отпишусь!
  3. Создал отдельную тему, поскольку название не совсем соответствует смыслу. Библиотека live555 отрабатывает так, что возвращает с камеры jpeg изображение в виде массива байт (unsigned char*). Далее с помощью библиотеки LibJPEG мы раскладываем этот массив на чисто данные unsigned char* data, ширину и высоту - unsigned int width и unsigned int height. Эти данные мы подаем на вход распознавателя, который ищет некие объекты на изображении. В случае, если они найдены - сохраняет полученное с камеры изображения в векторе. Далее эти изображения анализируются библиотекой cvblobs - вроде дополнение к OpenCV и по последовательно подаваемым фоткам получает блобы - соответствующие контурам двигающихся оъектов. Координаты объектов соответственно мы теперь тоже знаем. Итак - на выходе. Исходное изображение, координаты областей с объектами! Теперь предположим, нам нужна ЭЦП на картинку и данные. Как подписать данные - я знаю и сделал. а вот с картинкой не так все просто. Вернее было просто, когда была целая картинка - я подавал на вход функции массив байт (unsigned char* pictureData). Теперь же надо подписывать лишь вот эти куски большой картинки, которые содержат объекты. Описал проблему - теперь вопрос - надо как то вырезать из unsigned char* pictureData (jpeg картинка в виде байт-массива) вырезать cvRect (x,y,width,height) где x,y,width & height - величины относительно большой картинки. И привести к опять же виду массива байт - unsigned char*. Знаю, что ресурсы OpenCV и прилагающихся библиотек практически неисчерпаемы, соответственно я ОЧЕНЬ МНОГО каких функций не знаю - если ЕСТЬ - ПОДСКАЖИТЕ ПОЖАААЛУЙСТА! Заранее премного благодарен!!
  4. Память вместо файлов

    AuST - можно, куча специальных функций Nuzhny - я видимо второпях не посмотрел на число ответов на форуме stаckoverflow - 2летней давности... наверное раз на сайте официальном OpenCV есть - то документировали стало быть...Но в любом случае мы отказались от использования OpenCV...С камерой работаем при помощи библиотеки Live555...из основного приложения тоже наверное выкинем OpenCV, ажаль..я старался разбираться..ну ничего, поможет в будущем))
  5. Память вместо файлов

    а документированных функций в OPencv нет получается? про Decode нашел уже=) но не то((( надо документированное
  6. Память вместо файлов

    Существует проблема, связанная с эксплуатацией жесткого диска. На текущий момент в нашем проекте, фотографии с камеры сохраняются в ФС на винте. далее распознаватель обращается к ФС при помощи функции OPenCV cvLoadImage. Необходимо сделать так, чтобы работа с ФС была полностью исключена, поскольку винт итак эксплуатируется очень сильно! Основная программа работает с библиотекой live555 по работе с камерой, которая собственно и сохраняет картинки в файлы. Есть какая нибудь замена сvLoadImage, которая обращается к файлу, чтобы загружать картинку из памяти? ну или что то в этом роде) Буду рад любой идее..если что либо непонятно, или написал не собвсем доступно, прошу извинить, в любой момент готов объяснить! Помогите, чем можете) спасибо!
  7. JPEG

    это фотографии, поэтому лучше jpeg, я тоже кстати вначале думал, почему бы png не использовать) последовательностью кадров не является, именно что фотографии..и их размер надо уменьшить...перевод в ч\б и размытие ненужных частей пока принято на вооружение.. больше пока ничего нет, а завтра уже надо пробовать!! Помогите кто чем может, еще ))
  8. JPEG

    ага, спасибо) а больше ничего нельзя? просто надо бы все варианты перепробовать..идет вопрос о передаче большого количества изображений на сервер - надо уменьшить трафик
  9. JPEG

    Выскажите, пожалуйста, кто что знает по следующему поводу - с камеры поступает изображение, которое надо сохранить в jpeg, но наименьшего объема...качество д.б. таким , чтобы на изображении можно было распознавать информацию, номера авто и т.д. Какие есть советы по оптимизации? Я вот знаю, что вроде при переводе в ч\б размер уменьшается..а как еще? Спасибо всем высказавшемся!
×