可靠的交通标志检测是对其进行准确识别的前提,本次作业首先利用交通标志的红色特征域分割出潜在的交通标志区域,然后通过中值滤波、腐蚀、膨胀与填充操作,初步抑制目标图像的噪声,分割出交通标志独立的图像元素,接着针对交通标志具有规则的形状这一关键特征,通过轮廓提取,Harris角点检测方法最终确定出图像中的交通标志区域,实验结果表明了该算法的有效性。
下面是原图与检测后的对比图。
下面是具体程序,环境为Opencv3.4.1 + VS2017:
//在编译运行源代码之前,需将87行与214行的输入与输出路径更改为当前电脑图片所在绝对路径
#include<iostream>
#include<opencv2/opencv.hpp>
#define PI 3.1415926
using namespace std;
using namespace cv;
void RGB2HSV(double red, double green, double blue, double& hue, double& saturation, double& intensity)
{
double r, g, b;
double h, s, i;
double sum;
double minRGB, maxRGB;
double theta;
r = red / 255.0;
g = green / 255.0;
b = blue / 255.0;
minRGB = ((r < g) ? (r) : (g));
minRGB = (minRGB < b) ? (minRGB) : (b);
maxRGB = ((r > g) ? (r)