Qt/C++. Распознавание объектов и SQL запросы к базе данных.
В ранее опубликованной статье было описано применение СУБД PostgreSQL для создания базы данных
и сохранения в ее таблицах объектов, найденных программой "Object Detector".
В этой статье расскажем о реализации SQL запросов, позволяющих выбирать и отображать данные.
Но для чего нужны этой программе SQL запросы?
Дело в том, что "Object Detector" может распознавать и сохранять до 80 классов (типов) объектов.
Понятно, что нужны запросы, реализующие выборки по каждому из классов.
Далее, программа за минуту может распознавать и сохранять на диске десятки фотографий объектов.
Поэтому желательно иметь запросы для создания выборок по определенному периоду времени.
Еще одним требованием для создания SQL запросов могут быть выборки с учетом вероятности распознавания объектов.
Из всего сказанного видно, что нужны SQL запросы по разным критериям поиска.
Другая задача, реализованная в программе - это возможность редактирования изображений.
Дело в том, что качество изображений, получаемых с камеры, может быть разным, поэтому неплохо иметь инструментарий для их обработки.
В этой версии программы исправлены ошибки, допущенные в предыдущих версиях программы.
Это восьмая статья из цикла "Real-Time Object Recognition".
Первые семь обубликованы здесь:
1,
2,
3,
4,
5,
6 и
7.
При разработке программы использовались:
1. Программа Object Detector выполняет следующие функции:
2. Реализация SQL запросов.
Весь исходный код SQL запросов находится в классах MainWindow и Sql.
Класс Sql содержит форму для ввода параметров поискового образа. В состав формы входят поля: имя объекта, начало периода, конец периода,
вероятность распознавания. В текущей версии программы реализованы 8 типов выборок:
3. Редактирование снимков распознанных объектов.
Программа предоставляет следующие возможности редактирования изображенй: sharpen (резкость), blur (размытие), erode (эродирование), rotate (вращение).
Для редактирования изображения достаточно выделить (mouse click) его в QListView, а затем выбрать нужный пункт в меню Edit.
Пример работы программы в режиме редактирования приведен ниже на снимке экрана.
Все перечисленные функции редактирования реализованы средствами OpenCV. Исходный код находится в функции
void MainWindow::editImage(int itemMenuEdit).
Отдельные фрагменты кода для редактирования изображений взяты из примеров к хорошей книге "Qt 5 and OpenCV 4 Computer Vision Projects" .
Полное описание исходного текста программы предоставляется платно в файлах pdf или odt.
|