在OpenCV的初学之旅中,我深感这个图像处理库的简洁和灵活性,使我能够迅速上手,享受编写高效 图像处理代码的乐趣。其强大功能从基本的图像操作到复杂的计算机视觉任务无所不包,让我逐渐理解 了图像处理的核心概念,并能够熟练运用各种处理技术。开源的特性为我提供了丰富的学习资源,与庞大的开源社区互动让我受益匪浅。通过实践编写代码,我深刻体会到理论知识的实际应用,而 OpenCV提供的示例代码和文档以及为我的实践提供了坚实的基础。
findContours
来获取图像中的轮廓。#include <opencv2/opencv.hpp>
#include <iostream>
#include <Windows.h>using namespace cv;
using namespace std;
//打开文件模块头文件
string openFile(const wchar_t* windowTitle){}
//临边长比过滤函数【多边形approx,多边形边数,临边比上限,临边比下限】
bool SLengthDetect(vector<Point>approx, int sides, double RatioUpper, double RatioLower){}
//图形颜色判断函数【返回形状名称】
string judgeColor(int hue){}
//颜色检测并标注的函数(需要标注的图像,标注基准点,滤波图)【返回图形hue值】
int detectColor(Mat imgRead, Point center, Mat midblurcolor){}
//截取形状图片函数 (形状的轮廓,传入图像,形状名称,编号)
void CatchShape(vector<Point> approx, Mat imageRead, string shape, int id){}
//非摄像机图像初步处理函数
Mat ProcessImg(Mat imgRead){}
//摄像机图像初步处理函数
Mat CamProcessingImg(Mat img)
//形状识别相关函数(传入图像,是否截取形状,是否复刻原图,是否检测颜色,是否进入摄像机模式)
int reconizeShape(Mat imgRead, bool is_CATCHSHAPE, bool is_COPY, bool is_DETECTCOLOR, bool is_CameraMode){}
//打开文件模块头文件
string openFile(const wchar_t* windowTitle)
{OPENFILENAME ofn;wchar_t szFile[260] = { 0 };ZeroMemory(&ofn, sizeof(ofn));ofn.lStructSize = sizeof(ofn);ofn.lpstrFile = szFile;ofn.nMaxFile = sizeof(szFile);ofn.lpstrTitle = windowTitle; // 使用传入的窗口名称ofn.Flags = OFN_DONTADDTORECENT | OFN_FILEMUSTEXIST;ofn.lpstrFilter = L"Image Files *.bmp;*.jpg;*.png;*.JPEG;*.JPE;