Последнее обновление:
August 9, 2018

Есть мысль... Жми, напиши!
Qt

  • Рубрик нет

Конвертация QVideoFrame to OpenCV Mat в Qt5.6 и OpenCV3.1

Потребовалось на днях обрабатывать кадры с камеры (Использовалась QCamera) через OpenCV.
Да,  OpenCV может сам захватывать фреймы, но в случае с Qt QCamera работает лучше и есть больше параметров (например выбо р формата YUV или MJPG).
Вот так выглядит конвертация:
QVideoFrame copy(frame);
if (frame.isValid() && copy.map(QAbstractVideoBuffer::ReadOnly)) {
Mat frameYUV=Mat(copy.height() + copy.height()/2, copy.width(), CV_8UC1, (void*)copy.bits() );
[…]

Views :

258

Сервер-ретранслятор для IP H264 камер.

Приветствую!
В одном проекте возникла необходимость получать видео с IP камеры, вещающей в H264 формате и всё было хорошо, пока клиентов, подключённых к камере, было раз-два да обчёлся.
Но пользователей проекта становилось всё больше и камера просто не выдерживала по 5-6 клиентов и начинала адцки лагать т.к. сеть у неё всего 100 мб, да и производительность около […]

Views :

723

Qt настраиваем логирование в проекте (формат лога)

Приветствую!
Отладочные сообщения в QtCreator достаточно не информативные, особенно в большом проекте, а каждый раз прописывать  что-то вроде:
qDebug()<<"MyClass::functionName params"<<p1<<p2;
что бы знать в каком хоть классе и функции идёт вывод достаточно долго.
Можно перехватить вывод qDebug, а заодно qInfo, qWarning и т.д. и выводить их в файл логов (либо писать в базу, либо отправлять на лог-сервер).
Делается это так:
в […]

Views :

1131

Android MySql (QMysql) драйвер для Qt5.6 на Windows и Linux компиляция

В общем понадобилось портировать одну прогу под Андроид arm7, но она плотненько работает с базой данных, а так как я человек впринципе ленивый, то обёртку для REST API сервера было лень писать, решился на компилирование MySQL плагина, но если бы я знал тогда, что это займёт у меня 20 часов…

 
В общем вот вам готовый рецепт из […]

Views :

1025

ldd на Андроид

После портирования проги на девайс, прога в упор не хотела видеть одну из библиотек, решил глянуть через ldd, что же ей надо, но ldd на Андроиде не оказалось =(, а просто ldd её не воспринимает.
Чтож, будем делать аналог ldd но для arm =)
Вот так:
echo 'readelf -d $1 | grep "\(NEEDED\)" | sed -r "s/.*\[(.*)\]/\1/"' | […]

Views :

533

OpenCV warpPerspective, warpAffine без обрезки (whole image) и размер результата (destination result image size)

В общем потребовалось восстановить перспективу картинки,
на примере этой:

Как обычно — нашли 4 точки на картинке, в данном случае — углы листа, по часовой стрелке, начиная с верхнего левого:
[20, 340]
[860,110]
[1160, 650]
[200, 950]
Хотим, что бы лист располагался прямо, а для этого мы знаем, что ширина и высота листа 870 на 620 пикселей, аналогично координаты по часовой стрелке, […]

Views :

1097

QtWebEngine -зависимости или не отображается при запуске скомпилированного бинарника из операционки.

Решил тут хелп для очередной проги запилить в формате html, так как удобнее создавать.
Ну и для отображения был выбран QtWebEngine, написал простейший примерчик:
(Кому нужно просто решить проблему — в самый конец)
*.pro
QT += webengine
main.cpp
#include <QGuiApplication>
#include <QQmlApplicationEngine>
#include <QtWebEngine>
#include <QDebug>

int main(int argc, char *argv[])
{
qDebug()<<"MAIN";
QGuiApplication app(argc, argv);
QQmlApplicationEngine engine; […]

Views :

997

Qt Android JNI преобразование QByteArray в jbytearray и обратно, а так же получение и передача в jni функцию

Подребовалось мне из Java класса вызвать функцию, наподобии этой:
public int send(byte[] data)
{
….
}

Ну а что бы её вызвать из C++ нужно было преобразовать QByteArray в jbytearray
делается это так:
jbyteArray QByteArray2jbyteArray(QByteArray buf)
{
QAndroidJniEnvironment env;
jbyteArray array = […]

Views :

705

Печатаем на фискальнике Custom VKP-80K из c++ на Qt

В общем задача была разобраться с печатью именно фискалки, благо с обычной печатью всё просто, попробуем теперь с ним.
Т.к. дела раньше с фискальниками почти не имел, ссался, что в нём уже стоит ЭКЛЗ и все мои тестовые продажи Нидерландов уйдут в память, а потом при проверке налоговая не досчитается несколько ВВП,
но всё оказалась проще, ЭКЛЗ […]

Views :

630

Qt Получение цвета пикселя экрана/окна (get pixel screen ).

Инклуды:
#include <QApplication>
#include <QPixmap>
#include <QDesktopWidget>
ну и
#include
QPixmap *p = new QPixmap;
QDesktopWidget * descktop = QApplication::desktop();
*p = QPixmap::grabWindow(descktop->winId());
QImage *img = new QImage;
*img = p->toImage();
QRgb b = img->pixel(800,350);
QColor *c = new QColor;
c->setRgb(b);
qDebug() << c->name();

Views :

591