wordpress文章摘要江苏seo策略
- 作者: 五速梦信息网
- 时间: 2026年03月21日 05:33
当前位置: 首页 > news >正文
wordpress文章摘要,江苏seo策略,动漫制作专业前景,免费的ai写作网站使用OpenCV和C来识别彩色图片中的特定物体#xff0c;如黑桃♠#xff0c;通常涉及几个步骤#xff1a;预处理图像、特征提取、对象检测等。下面是一个基本的示例代码#xff0c;演示如何使用OpenCV的模板匹配方法来识别图片中的黑桃♠。 函数原型 void matchTemplate(Inp…使用OpenCV和C来识别彩色图片中的特定物体如黑桃♠通常涉及几个步骤预处理图像、特征提取、对象检测等。下面是一个基本的示例代码演示如何使用OpenCV的模板匹配方法来识别图片中的黑桃♠。 函数原型 void matchTemplate(InputArray image, InputArray temp, OutputArray result, int method)void matchTemplate(InputArray image, // 输入的大图像InputArray templ, // 输入的模板图像OutputArray result, // 输出的匹配结果矩阵int method // 匹配方法 );参数说明: image: 输入的大图像它可以是灰度图像或者是彩色图像。 templ: 模板图像它通常是较小的图像我们希望在大图像中寻找这个模板的位置。 result: 匹配结果矩阵输出的是一个二维矩阵它的大小取决于输入图像和模板的大小以及所选择的匹配方法。每个元素代表了相应位置的匹配程度。 method: 匹配的方法有多种可选的方法包括但不限于 CV_TM_SQDIFF: 平方差匹配法 CV_TM_SQDIFF_NORMED: 归一化的平方差匹配法 CV_TM_CCORR: 互相关匹配法 CV_TM_CCORR_NORMED: 归一化的互相关匹配法 CV_TM_CCOEFF: 交叉系数匹配法 CV_TM_CCOEFF_NORMED: 归一化的交叉系数匹配法函数作用: 这个函数通过遍历输入图像中的每一个可能的位置将模板图像与该位置上的图像区域进行比较计算出一个相似度值。最终所有的相似度值会被存储在一个矩阵中这个矩阵就是 result 参数。在不同的匹配方法下这个矩阵的值有不同的意义。 例如对于归一化的交叉系数匹配法 (CV_TM_CCOEFF_NORMED)匹配得分接近于 1 表示非常好的匹配而对于平方差匹配法 (CV_TM_SQDIFF)得分接近于 0 表示很好的匹配。使用示例: 如果你想找到一个模板图像在另一张大图像中的位置你可以使用 matchTemplate 函数并随后分析 result 矩阵来确定最佳匹配位置。对于某些匹配方法你需要找到矩阵中的最大值而对于其他方法则需要找到最小值。 void minMaxLoc(InputArray src, double* minVal, double* maxVal0, Point* minLoc0, Point* maxLoc0, InputArray masknoArray()); void minMaxLoc(const SparseMat src, double* minVal, double* maxVal, int* minIdx0, int* maxIdx0); minMaxLoc 是 OpenCV 库中的一个函数用于查找数组中的全局最小值和最大值同时也可以找出这些值的位置。此函数适用于多种类型的数组包括稠密数组和稀疏数组。对于稠密数组如 Mat 或 Umat: void minMaxLoc(InputArray src, // 输入数组double* minVal, // 输出指针指向最小值double* maxVal 0, // 输出指针指向最大值可选Point* minLoc 0, // 输出指针指向最小值的位置可选Point* maxLoc 0, // 输出指针指向最大值的位置可选InputArray mask noArray() // 可选的掩码数组用于指定要处理的像素子集 );对于稀疏数组如 SparseMat: void minMaxLoc(const SparseMat src, // 输入稀疏数组double* minVal, // 输出指针指向最小值double* maxVal, // 输出指针指向最大值int* minIdx 0, // 输出指针指向最小值的索引可选int* maxIdx 0 // 输出指针指向最大值的索引可选 );参数说明 src: 输入的数组可以是多通道的数组。如果是多通道的数组函数会分别在每个通道上查找最小值和最大值。 minVal: 输出指针指向最小值。如果不需要这个值可以传入 nullptr。 maxVal: 输出指针指向最大值。如果不需要这个值可以传入 nullptr。 minLoc: 输出指针指向最小值的位置。对于多通道数组返回的是通道索引和像素坐标。如果不需要这个位置信息可以传入 nullptr。 maxLoc: 输出指针指向最大值的位置。对于多通道数组返回的是通道索引和像素坐标。如果不需要这个位置信息可以传入 nullptr。 mask: 可选的掩码数组用于指定要处理的像素子集。掩码数组应该是单通道的 8 位无符号整型数组。非零值表示对应的像素应该被处理零值则表示对应的像素被忽略。 rectangle 函数是 OpenCV 库中的一个函数用于在图像上绘制矩形。这个函数有两种重载形式一种接受两个顶点来定义矩形的对角线另一种接受一个 Rect 对象来定义矩形。下面是这两个函数的中文含义及参数说明void rectangle(Mat img, Point pt1, Point pt2, const Scalar color, int thickness1, int lineType8, int shift0); void rectangle(Mat img, Rect r, const Scalar color, int thickness1, int lineType8, int shift0);对于使用两个顶点定义矩形的情况: void rectangle(Mat img, // 要绘制矩形的图像Point pt1, // 矩形左上角的点Point pt2, // 矩形右下角的点const Scalar color, // 矩形的颜色int thickness 1, // 线条的厚度如果为负值则填充矩形int lineType 8, // 线条类型通常为 8 表示 8 连续性int shift 0 // 坐标轴的位移量 ); 对于使用 Rect 定义矩形的情况: void rectangle(Mat img, // 要绘制矩形的图像Rect r, // 矩形区域const Scalar color, // 矩形的颜色int thickness 1, // 线条的厚度如果为负值则填充矩形int lineType 8, // 线条类型通常为 8 表示 8 连续性int shift 0 // 坐标轴的位移量 );参数说明 img: 输入/输出图像矩形将在其上绘制。 pt1: 矩形左上角的坐标。 pt2: 矩形右下角的坐标。 r: 代表矩形的 Rect 对象。 color: 矩形的颜色由 Scalar 类型定义。例如 Scalar(0, 0, 255) 表示红色。 thickness: 线条的厚度单位为像素。默认值为 1。如果设置为负数例如 -1则矩形会被填充。 lineType: 线条类型默认为 8意味着使用 8 邻域的抗锯齿线条。其他可能的值有 LINE_4, LINE_8, LINE_AA。 shift: 坐标轴的位移量。通常情况下设置为 0 即可。 //minMaxLoc 函数举例#include opencv2/opencv.hpp #include iostreamint main() {cv::Mat image cv::imread(10.jpg, cv::IMREAD_GRAYSCALE);if (image.empty()){std::cout Could not open or find the image std::endl;return -1;}double minVal, maxVal;cv::Point minLoc, maxLoc;cv::minMaxLoc(image, minVal, maxVal, minLoc, maxLoc);std::cout Minimum value: minVal at ( minLoc.x , minLoc.y ) std::endl;std::cout Maximum value: maxVal at ( maxLoc.x , maxLoc.y ) std::endl;system(pause);return 0; } 原图 截取模板 代码 #include iostream #include opencv2/opencv.hpp #include opencv2/imgproc.hpp #include opencv2/highgui.hppusing namespace std; using namespace cv;int main() {Mat srcImage imread(10.jpg, IMREAD_COLOR);//读取源图像Mat templateImage imread(10_0.jpg, IMREAD_COLOR);//读模板图像if (srcImage.empty() || templateImage.empty()){cout 读入的图片有空资源 endl;}//转化为灰度图、以减少计算复杂度Mat graySrc, grayTemplate;cvtColor(srcImage, graySrc, COLOR_BGR2GRAY);cvtColor(templateImage, grayTemplate, COLOR_BGR2GRAY);//执行模板匹配Mat result;matchTemplate(graySrc, grayTemplate, result, TM_CCOEFF_NORMED);//设定阈值找到匹配位置double minVal, maxVal;Point minLoc, maxLoc;minMaxLoc(result, minVal, maxVal, minLoc, maxLoc);//如果匹配得分足够高则在原图上标出匹配区域int width templateImage.cols;int height templateImage.rows;if (maxVal 0.8)//设置一个阈值根据实际情况调整{rectangle(srcImage, maxLoc, Point(maxLoc.x width, maxLoc.y height), Scalar(0, 0, 255), 2);}//显示结果imshow(源图像, srcImage);imshow(模板图像, templateImage);waitKey(0);return 0; } 运行结果
相关文章
-
wordpress文章新窗口打开排名优化工具下载
wordpress文章新窗口打开排名优化工具下载
- 技术栈
- 2026年03月21日
-
wordpress文章归档页面郑州网络seo公司
wordpress文章归档页面郑州网络seo公司
- 技术栈
- 2026年03月21日
-
wordpress为文章添加下载按钮如何搭建 seo网站
wordpress为文章添加下载按钮如何搭建 seo网站
- 技术栈
- 2026年03月21日
-
wordpress无法开启多站点seo短视频新地址在哪里
wordpress无法开启多站点seo短视频新地址在哪里
- 技术栈
- 2026年03月21日
-
wordpress无域名建站如何快速制作网页界面
wordpress无域名建站如何快速制作网页界面
- 技术栈
- 2026年03月21日
-
wordpress物品展示中搜seo
wordpress物品展示中搜seo
- 技术栈
- 2026年03月21日






