opencv之调用摄像头进行特征识别

程序

#include “stdafx.h”

//本节讲述 画线、点、矩形、圆形和椭圆.多边形,文本。 等函数;
#include <opencv2/opencv.hpp>
#include

using namespace std;
using namespace cv;

int match_method = CV_TM_SQDIFF;
int max_track = 5;
void Match_Demo(int, void*);

//Mat bgImage;
//const char *drawdemo_win = “draw shapes and text demo”;
Mat addSaltNoise(const Mat srcImage, int n);
VideoCapture capture(0);
Mat vidio, gray_src,dst, dst4, dst5, frame,temp;
int main(int argc, char**argv)
{
//Mat src, dst;

temp = imread("C:/Users/Rubison.DELL/Desktop\\杂物/壁纸/帅哥.jpg");  //存放自己图像的路径 
if (!temp.data)
{
	printf("could not load image...\r\n");
	return -1;
}

imshow("特征", temp);
while (1)
{
	capture >> frame;
	imshow("原图", frame);

	cvtColor(frame, vidio, CV_BGR2GRAY);
	const char*trackbar_title = "Match Alog Type ";
	createTrackbar(trackbar_title, "原图", &match_method, max_track, Match_Demo);
	Match_Demo(0, 0);

	waitKey(30);

}
waitKey(0);
return 0;

}

void Match_Demo(int, void*)
{
int width = frame.cols - frame.cols + 1; //模板的宽和高
int height = frame.rows - frame.rows + 1;
Mat result(width, height, CV_32FC1);

matchTemplate(frame, temp, result, match_method);
normalize(result, result, 0, 1, NORM_MINMAX);
//找出匹配位置
Point minLoc;
Point maxLoc;
Point temLoc;
double max, min;
frame.copyTo(dst);
minMaxLoc(result, &min, &max, &minLoc, &maxLoc);     //在矩阵中需找全局的最大最小数。
if (match_method == CV_TM_SQDIFF || match_method == CV_TM_SQDIFF_NORMED)
{
	temLoc = minLoc;
}
//几种不同的匹配方法,结果不同,利用平方差来进行匹配,最好匹配为0.匹配越差,匹配值越大.
else
{
	temLoc = maxLoc;
}

rectangle(dst, Rect(temLoc.x, temLoc.y, temp.cols, temp.rows), Scalar(0, 2555, 0), 2, 8);
rectangle(result, Rect(temLoc.x, temLoc.y, temp.cols, temp.rows), Scalar(0, 2555, 0), 2, 8);
imshow("结果", result);
imshow("匹配", dst);

}
运行结果
特征图:在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

怎么会这样???

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

w5875895

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值