智能车赛事的C++,opencv识别标识代码

在这里的项目文件的目录是这样的,只有main.cpp是运行的 

在这里我进行了进行直接装编译好的opencv的方法直接进行使用

在这里我的编译器是Clion来进行的C++的编译。这里参考的是这篇文章:Windows下Clion免编译配置opencv教程,小白向_clion opencv-优快云博客

这里我使用的opencv的版本是:4.5.5的版本。下载的可以直接从这里下载:

通过百度网盘分享的文件:OpenCV-MinGW-Build-OpenCV-4.5.5-x64...
链接:https://pan.baidu.com/s/1oAyIkfTa8EUAF5fxHYeizA?pwd=0225 
提取码:0225

        这里还要进行配置环境配置中的目录为 我的压缩包中的OpenCV-MinGW-Build-OpenCV-4.5.5-x64\x64\mingw\bin这个目录。

        这里还要给这个编译器进行配置:打开编辑配置进行配置,之后对最近的配置的应用程序进行配置工作目录添加这个:OpenCV-MinGW-Build-OpenCV-4.5.5-x64\x64\mingw\bin(这里的前缀我没有加是放到的文件夹的位置自行补全即可)

这里的C++的main代码是这个: 

#include <iostream>
#include <vector>
#include <opencv2/opencv.hpp>

// 定义颜色分割的 HSV 范围
cv::Scalar lower_hsv(103, 65, 115);
cv::Scalar upper_hsv(125, 200, 240);

// 定义标志物类型
enum SIGN_TYPE
{
    UNKNOWN = -1,
    A = 0,
    B = 1,
    Left = 2,
    Right = 3
};

// 模板存储
std::vector<cv::Mat> templates;
std::vector<cv::Mat> templates_roi;
std::vector<SIGN_TYPE> sign_types = {A, B, Left, Right};
std::vector<std::string> sign_names = {"A", "B", "Left", "Right"};
// A4: 210mm×297mm
std::vector<cv::Point3f> object_points_1 = {
    {-0.21 / 2, -0.297 / 2, 0},
    {-0.21 / 2, 0.297 / 2, 0},
    {0.21 / 2, 0.297 / 2, 0},
    {0.21 / 2, -0.297 / 2, 0}}; // 横着的A4纸
std::vector<cv::Point3f> object_points_2 = {
    {-0.297 / 2, -0.21 / 2, 0},
    {0.297 / 2, -0.21 / 2, 0},
    {0.297 / 2, 0.21 / 2, 0},
    {-0.297 / 2, 0.21 / 2, 0}}; // 竖着的A4纸

// 相机内参矩阵
cv::Mat cameraMatrix = (cv::Mat_<double>(3, 3) << 229.5, 0, 320, // fx, 0, cx
                        0, 171.6, 240,                           // 0, fy, cy
                        0, 0, 1                                  // 0, 0, 1
);

// 假设没有畸变
cv::Mat distCoeffs = cv::Mat::zeros(4, 1, CV_64F); // 5-8维
float template_thersold = 0.5;
// 函数:获取模板
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值