颜色识别,角度检测,数字识别,TCP通讯
主界面包含功能:模板图片集获取,模板图片集清除,端口选择,开启端口监听,关闭端口监听,检测结果发送下位机(本次演示所用下位机为 ABB的IPB 120 型机械臂)
演示效果IP摄像头演示
实机演示
部分源码主界面
#ifndef MAINWINDOW_H #define MAINWINDOW_H #include#include #include #include #include #include #include "ip_camera_setting.h" #include #include #include #include #include #include "color_detector.h" #include "angle_detector.h" #include #include #include "contourwithdata.h" using namespace std; QT_BEGIN_NAMESPACE namespace Ui { class MainWindow; } QT_END_NAMESPACE class MainWindow : public QMainWindow { Q_OBJECT public: MainWindow(QWidget *parent = nullptr); ~MainWindow(); void MennBarInit(); //菜单初始化 private slots: void on_quit_button_clicked(); //退出按钮 void on_clear_button_clicked(); //清除按钮 void local_camera_open(); //打开本地摄像头 void ip_camera_open(std::string address, std::string port); //打开ip摄像头 cv::Mat camera_capture(cv::Mat frame); //拍照 void server_open_port(int port); //服务器监听端口 void server_accept_connection(); //服务器接受连接 void server_send(const QString &data); //服务器发送数据 std::string temp( cv::Mat frame ); //临时函数 std::string detect_color(cv::Mat imgOriginal); //颜色检测 // void on_test_clicked(); //测试按钮 void on_Server_startup_clicked(); void on_capture_clicked(); void on_clear_templates_clicked(); protected: void closeEvent(QCloseEvent *event) override; private: Ui::MainWindow *ui; QString result; cv::Mat frame; std::vector img_template; //用于存储模板图像 cv::VideoCapture capture; std::string camera_IP, camera_port; cv::Mat frame_temp; // int num = 0; ip_camera_setting *ip_camera_setting_widget; QTcpServer *tcpServer; QTcpSocket *tcpSocket; QTimer *camera_timer; color_detector *col_detector; int template_num = 0; // angle_detector *agl_detector; Angle_detector *a; //角度+数字识别 }; #endif // MAINWINDOW_H
颜色识别
#ifndef COLOR_DETECTOR_H #define COLOR_DETECTOR_H #include#include #include using namespace std; class color_detector { public: color_detector(cv::Mat imgOriginal); QString color_result(); //识别结果 private: QString color; //颜色编号 }; #endif // COLOR_DETECTOR_H
项目获取



