OpenCV中Scalar解析

Scalar定义可存放1—4个数值的数值,其结构体如下:

typedef struct Scalar
{
    double val[4];
}Scalar;

例如:Scalar s;

如果使用的图像是1通道的,则s.val[0]中存储数据

如果使用的图像是3通道的,则s.val[0],s.val[1],s.val[2]中存储数据

  • 12
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
OpenCV模版匹配是一种在图像寻找给定模板的技术。该技术在多个领域都有应用,如数字图像处理、计算机视觉等。 在OpenCV,模版匹配的函数为`matchTemplate()`。其主要步骤如下: 1. 首先,我们需要加载原始图像和待匹配的模板图像。 2. 然后,使用模版图像和原始图像进行匹配。这一步骤,我们可以选择多种匹配方法,如平方差匹配、相关性匹配和归一化相关性匹配。 3. 匹配后,我们可以使用`minMaxLoc()`函数找到匹配结果的最小值和最大值。 4. 最后,我们可以绘制矩形框来标记匹配的位置。 下面是一份简单的OpenCV模版匹配的源码示例: ```cpp #include <opencv2/opencv.hpp> int main() { // 加载原始图像和模版图像 cv::Mat img = cv::imread("original.png", cv::IMREAD_COLOR); cv::Mat templ = cv::imread("template.png", cv::IMREAD_COLOR); // 进行模版匹配 cv::Mat result; cv::matchTemplate(img, templ, result, cv::TM_CCOEFF_NORMED); // 寻找匹配结果的最小值和最大值 double minVal, maxVal; cv::Point minLoc, maxLoc; cv::minMaxLoc(result, &minVal, &maxVal, &minLoc, &maxLoc); // 绘制矩形框来标记匹配的位置 cv::rectangle(img, maxLoc, cv::Point(maxLoc.x + templ.cols, maxLoc.y + templ.rows), cv::Scalar(0, 255, 0), 2); // 显示结果图像 cv::imshow("Matched Image", img); cv::waitKey(0); return 0; } ``` 上述代码展示了一个简单的OpenCV模版匹配的流程。通过加载原始图像和模版图像,并使用`matchTemplate()`函数进行匹配,然后使用`minMaxLoc()`函数找到匹配结果的最大值位置,最后使用`rectangle()`函数绘制矩形框标记匹配位置。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值