当前位置: 首页 > news >正文

基于方向编码的模板匹配算法matlab仿真

目录

1.算法运行效果图预览

2.算法运行软件版本

3.部分核心程序

4.算法理论概述

5.算法完整程序工程


1.算法运行效果图预览

 

 

 

 

 

2.算法运行软件版本

MATLAB2022a

3.部分核心程序

...........................................................................
%选择移动个数
N        = 2;% 选择移动个数
% 读取模板图像和第一幅子图像
Images0  = imread([num2str(17-N),'.jpg']);
% 将子图像转换为双精度类型
Images0  = func_convert(Images0);
Template = imread('match.jpg');
% 将匹配模板图像转换为双精度类型
Template = func_convert(Template);
% 获取匹配模板图像的行数和列数
[R,C]    = size(Template);% 初始化相似性度量值数组
for j = 1:16% 循环进行图像匹配j%移动% 移动子图,选择下一幅子图像index    = 16-N+j;if index > 16;index = index-16;endImages0  = imread([num2str(index),'.jpg']);Images0  = func_convert(Images0);% 将子图像转换为双精度类型% 调用 func_Orientation_codes 函数计算匹配模板图像和子图像的方向码直方图特征f1 = func_Orientation_codes(Template);% 计算模板图像的方向码直方图特征f2 = func_Orientation_codes(Images0);% 计算子图像的方向码直方图特征f  = [f1;f2]';% 计算相似性度量值for i = 1:16d(i) = 1-sum(abs(f1(i)-f2(i)))/(max(f1(i),f2(i)));     endd2(j) = mean(d);pause(0.1);
end
% 对于 j=16 的相似性度量值需要放到数组的开头,使得曲线绘制时顺序正确
d3(1)=d2(16);
d3(2:16)=d2(1:15);
% 绘制相似性度量值曲线
figure;
plot(0:15,d3,'b-o')
axis([0,15,0.5,1.2]);
grid on;
title('相似性度量值曲线');
03_016m

4.算法理论概述

        模板匹配是一种常见的计算机视觉方法,用于在一幅图像中寻找指定的模板。它在目标检测、图像识别、物体跟踪等领域中有广泛的应用。基于方向编码的模板匹配算法是一种改进的模板匹配方法,它通过将图像转化为方向编码的形式,实现了更加高效和准确的模板匹配。本文将详细介绍基于方向编码的模板匹配算法,包括数学原理、实现过程以及应用领域。

         本文选用方向码[7]作为特征来计算出近似的旋转角度和 进行基于像素点的匹配,整个匹配分两步进行。首先计算出 模板和模板覆盖下的子图的方向码图像,在此基础上得到模板和子图的方向码直方图,移动子图方向码直方图,每移动一 次计算二者直方图之间的相似程度,若相似性度量值大于预 先规定的阈值,则子图的左上角像素点就被选为候选的匹配 点,旋转角度依据直方图的移动次数估算得出。然后在每一 个匹配候选点上,根据第 1 步中得出的近似旋转角度旋转模 板后,得到旋转后的模板方向码图像,再计算子图和模板间的 相似程度,最相似的匹配点通过综合第 1 步和第 2 中得到的 相似性度量值得出。第 1 步中估算出的旋转角度排除了对每 一个侯选匹配点按各个可能的方向进行旋转的必要,从而加 快了匹配速度。

       算法的流程图如下图所示:

 

5.算法完整程序工程

OOOOO

OOO

O

相关文章:

基于方向编码的模板匹配算法matlab仿真

目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 5.算法完整程序工程 1.算法运行效果图预览 2.算法运行软件版本 MATLAB2022a 3.部分核心程序 ........................................................................... %选择移动个…...

shell centos 7 一键部署 KVM软件脚本

这个脚本有限地方还需要完善下 设计思路: 1、创建检查内核函数 check_kernel() 2、创建升级内核函数 update_kernel() 3、创建检查是否支持虚拟化函数 check_virtual() 4、创建检查操作系统函数 check_system() 5、创建检查网络函数 check_network() 6…...

64 # 实现一个 http-server

准备工作 上一节实现了通过 commander 的配置获取到用户的参数,下面完成借用 promise 写成类的方法一节没有完成的任务,实现一个 http-server,https://www.npmjs.com/package/http-server,http-server 是一个简单的零配置命令行静…...

HCIP作业3

题目 配置IP地址 R1 [r1]int g0/0/1 [r1-GigabitEthernet0/0/1]ip add 192.168.1.1 24 [r1-Serial4/0/0]ip add 12.1.1.1 24 R2 [r2]int s4/0/0 [r2-Serial4/0/0]ip add 12.1.1.2 24 [r2-Serial4/0/0]int s4/0/1 [r2-Serial4/0/1]ip add 32.1.1.1 24 [r2-Serial4/0/1]in…...

【测试学习三】软件测试的生命周期 BUG的相关知识

目录 一、软件测试的生命周期(重要) 🍑1、软件的生命周期? 🍑2、软件测试的生命周期? 二、关于BUG 🍑1、如何描述与定义一个BUG?(了解) 🍑2…...

git rebase 的坑儿

1 同步远程仓库 git pull --rebase拉取远程分支之后如果没有冲突直接使用 git rebase --continue若有冲突, 解决冲突, 一般是使用当前的更改, 因为传入的更改是你本地的更改 然后使用 git add 提交冲突 此处千万别使用 git commit --amend 最后使用 git rebase --continu…...

SSM(Vue3+ElementPlus+Axios+SSM前后端分离)【四】

文章目录 SSM(Vue3ElementPlusAxiosSSM前后端分离)--基础环境搭建【四】项目介绍项目功能/界面● SSM 整合项目界面 创建表,使用逆向工程生成Bean、XxxMapper 和XxxMapper.xml1. 创建furns_ssm 数据库和furns 表使用MyBatis Generator 逆向工程生成bean mapper 接口…...

iPhone 8 Plus透明屏应用范围详解

iPhone 8 Plus是苹果公司于2017年推出的一款智能手机,它采用了全新的玻璃机身设计,支持无线充电,并且搭载了更强大的A11仿生芯片。 而透明屏则是一种新型的屏幕技术,可以使手机屏幕呈现出透明的效果。 透明屏是一种将屏幕背后的元…...

【前端面试手撕题】instanceof、Array.map、Array.filter、Array.reduce、_objectCreate

FED6 instanceof 描述 请补全JavaScript代码&#xff0c;要求以Boolean的形式返回第一个实例参数是否在第二个函数参数的原型链上。 <!DOCTYPE html> <html><head><meta charset"UTF-8"><style>/* 填写样式 */</style> </h…...

8.物联网操作系统之事件标志组

。事件标志组定义 FreeRTOS事件标志组介绍 FreeRTOS事件标志组工作原理 一。事件标志组定义 信号量信号量只能实现任务与单个事件或任务间的同步。但是某些任务可能会需要与多个事件或任务进行同步&#xff0c;此时就可以使用事件标志组来解决。事件标志组能够实现某个任务与…...

[腾讯云Cloud Studio实战训练营]无门槛使用GPT+Cloud Studio辅助编程完成Excel自动工资结算

目录 前言一、Cloud Studio产品介绍1.1 注册Cloud Studio 二、项目实验2.1 选择合适的开发环境2.2 实验项目介绍2.3 实验步骤三、总结 前言 chatgpt简单介绍: ChatGPT是一种基于GPT的自然语言处理模型&#xff0c;专门用于生成对话式文本。它是OpenAI于2021年发布的&#xff0…...

局域网ssh登录windows自带Linux系统(WSL)踩坑记录

局域网ssh登录windows自带Linux系统&#xff08;WSL&#xff09;踩坑记录 系统和工具安装查看IPLinux用户和端口设置Windows ssh 登录Mac ssh 登录 系统和工具安装 先按照网上的教程安装好Linux系统&#xff08;一般都是安装Ubuntu&#xff09;&#xff0c;安装好ssh等工具&am…...

2023-02-03——2023-08-03,半年以来与客服交流的记录【CSND 文章撰写 网站使用求解】客服咨询交流记录(长期更新ing)

这世界上久处不厌,都是因为用心。 🎯作者主页: 追光者♂🔥 🌸个人简介: 💖[1] 计算机专业硕士研究生💖 🌿[2] 2023年城市之星领跑者TOP1(哈尔滨)🌿 🌟[3] 2022年度博客之星人工智能领域TOP4🌟 🏅[4] 阿里云社区特邀专家博主🏅 🏆...

DCL 操作

文章目录 1.新建用户2.删除用户3.用户授权4.撤销用户权限5.查看用户权限6.修改用户密码 1.新建用户 # 命令格式 CREATE USER [username][host] identified by [password];# 示例 CREATE USER lvlvlocalhost identified by lvlv; CREATE USER lvlv192.168.1.1 identified by lv…...

C++11移动构造函数详解

C11移动构造函数详解 拷贝构造函数修改后的拷贝构造函数移动构造函数移动构造函数的优点 当类中同时包含拷贝构造函数和移动构造函数时&#xff0c;如果使用临时对象初始化当前类的对象&#xff0c;编译器会优先调用移动构造函数来完成此操作。只有当类中没有合适的移动构造函数…...

【力扣】19. 删除链表的倒数第 N 个结点 <链表指针、快慢指针>

【力扣】19. 删除链表的倒数第 N 个结点 给你一个链表&#xff0c;删除链表的倒数第 n 个结点&#xff0c;并且返回链表的头结点。 示例 1&#xff1a; 输入&#xff1a;head [1,2,3,4,5], n 2 输出&#xff1a;[1,2,3,5] 示例 2&#xff1a; 输入&#xff1a;head [1], n…...

Vue3和typeScript路由传参

1 params传的参数&#xff0c;页面刷新就消失,而query传的参数&#xff0c;页面刷新还会存在&#xff0c;所以通常用query。 query传参 跳转页面&#xff1a;拿到router对象,调用push方法做跳转. import { useRoute,useRouter} from "vue-router"; export default…...

SQLserver数据库巡检脚本

SQL Server数据库巡检脚本的示例&#xff1a; #!/bin/bash# 设置SQL Server登录凭证 SQL_USER"your_username" SQL_PASSWORD"your_password"# 设置巡检结果输出文件路径 OUTPUT_FILE"/path/to/output.log"# 获取SQL Server版本信息 sql_version…...

Go Ethereum源码学习笔记 001 Geth Start

Go Ethereum源码学习笔记 前言[Chapter_001] 万物的起点: Geth Start什么是 geth&#xff1f;go-ethereum Codebase 结构 Geth Start前奏: Geth Consolegeth 节点是如何启动的NodeNode的关闭 Ethereum Backend附录 前言 首先读者需要具备Go语言基础&#xff0c;至少要通关菜鸟…...

idea如何加快创建Maven项目的速度

一、下载archetype-catalog.xml 下载archetype-catalog.xml的地址 二、配置 以下所说的配置都指全局配置。 配置Maven -DarchetypeCataloglocal -Dfile.encodinggbk...

从GKCTF 2021 CheckBot看CSRF攻击的实战应用

1. CSRF攻击初探&#xff1a;从CheckBot题目说起 第一次看到GKCTF 2021的CheckBot题目时&#xff0c;我眼前一亮——这简直是个教科书级的CSRF实战案例。题目设计得很巧妙&#xff1a;你需要让一个自动化的bot&#xff08;可以理解为模拟管理员行为的程序&#xff09;点击你构造…...

从3000到20万,普源、鼎阳、泰克示波器怎么选?一份给嵌入式开发者的‘够用就好’选购指南

从3000到20万&#xff1a;嵌入式开发者示波器选购实战指南 当你面对一个SPI通信异常需要抓取波形时&#xff0c;或是调试I2C总线上的数据错乱时&#xff0c;一台合适的示波器就是你的"第三只眼"。但打开购物网站&#xff0c;从3000元的国产入门款到20万元的进口旗舰&…...

香橙派5Plus内核编译踩坑实录:从WSL报错到板端编译卡死的完整解决方案

香橙派5Plus内核编译实战&#xff1a;破解WSL兼容性与板端卡死难题 当我在工作室里第一次点亮香橙派5Plus时&#xff0c;这块搭载Rockchip RK3588的开发板立刻吸引了我的注意。作为一款性能强劲的ARM开发平台&#xff0c;它本应成为嵌入式开发的理想选择——直到我尝试为其编译…...

终极指南:PointNet激活函数性能大比拼 ReLU、LeakyReLU与Swish深度测试

终极指南&#xff1a;PointNet激活函数性能大比拼 ReLU、LeakyReLU与Swish深度测试 【免费下载链接】pointnet PointNet: Deep Learning on Point Sets for 3D Classification and Segmentation 项目地址: https://gitcode.com/gh_mirrors/po/pointnet PointNet作为3D点…...

避坑指南:Vue3 + Maotu流程图编辑器集成时,Token失效、样式丢失等5个常见问题怎么解决?

Vue3与Maotu流程图编辑器深度集成&#xff1a;5大核心问题解决方案与实战优化 在工业物联网和复杂业务系统开发中&#xff0c;可视化流程编辑器的集成质量直接影响开发效率和系统稳定性。Maotu作为国内领先的流程图编辑组件&#xff0c;与Vue3的深度整合为开发者提供了强大的可…...

终极指南:如何免费解锁Cursor AI编辑器的完整Pro功能

终极指南&#xff1a;如何免费解锁Cursor AI编辑器的完整Pro功能 【免费下载链接】cursor-free-vip [Support 0.45]&#xff08;Multi Language 多语言&#xff09;自动注册 Cursor Ai &#xff0c;自动重置机器ID &#xff0c; 免费升级使用Pro 功能: Youve reached your tria…...

Keepalived高可用与负载均衡

一、核心定位开源高可用&#xff08;HA&#xff09;软件&#xff0c;核心解决单点故障&#xff0c;可结合LVS实现负载均衡高可用双重保障&#xff0c;基于VRRP协议工作。二、核心功能主备自动切换&#xff1a;通过VRRP协议&#xff0c;实现节点故障时VIP漂移&#xff0c;保障服…...

SenseVoice-small-onnx语音识别实战:为老年群体设计大字体高对比度Gradio语音助手

SenseVoice-small-onnx语音识别实战&#xff1a;为老年群体设计大字体高对比度Gradio语音助手 你有没有想过&#xff0c;当家里的长辈想用手机发条语音消息&#xff0c;或者想问问天气&#xff0c;却因为看不清屏幕上的小字、分不清复杂的按钮而放弃&#xff1f;这可能是很多老…...

别再为ZED相机环境发愁了!Win10 + Python + CUDA 11.x 保姆级配置全流程(含pyzed安装避坑指南)

别再为ZED相机环境发愁了&#xff01;Win10 Python CUDA 11.x 保姆级配置全流程&#xff08;含pyzed安装避坑指南&#xff09; 刚拿到ZED相机的开发者&#xff0c;往往会在环境配置阶段遇到各种"坑"&#xff1a;CUDA版本不兼容、SDK安装失败、Python API下载超时……...

Mermaid在线图表编辑器:零代码基础也能创作专业流程图

Mermaid在线图表编辑器&#xff1a;零代码基础也能创作专业流程图 【免费下载链接】mermaid-live-editor Edit, preview and share mermaid charts/diagrams. New implementation of the live editor. 项目地址: https://gitcode.com/GitHub_Trending/me/mermaid-live-editor…...