结构张量 matlab 图像,图像的结构张量MATLAB代码
根据结构张量能区分图像的平坦区域、边缘区域与角点区域。
此算法也算是计算机科学最重要的32个算法之一了。链接的文章中此算法名称为Strukturtensor算法,不过我搜索了一下,Strukturtensor这个单词好像是德语,翻译过来就是structure tensor结构张量了。
此处所说的张量不是相对论或黎曼几何里的张量,黎曼几何的张量好多论文都叫张量场了。也不是数学界还没研究明白的对矩阵进行扩展的高阶张量,主要是张量分解。这里的结构张量就是一个矩阵,一个对图像像素进行组织的数据结构而已。
像素组织而成的矩阵如下:
这个公式太常见了,在harris角点检测中就用到了。其中Ix,Iy就是原对原图像在x和y方向求得的偏导。
然后求矩阵E的行列式K和迹H。然后根据K和H的关系就能区分图像的区域模式了。
模式分以下三类:
平坦区域:H=0;
边缘区域:H>0 && K=0;
角点区域:H>0 && K>0;
harris角点检测就用到了第三类判断。
当然,在实际应用的时候H和K的值肯定都不会是理想,所以我用的都是近似判断。
处理结果如下:
原图:
平坦区域:
边缘区域:
角点区域(好像也不全角点,求角点还是harris好了):
结构张量行列式与迹的关系:
其中红框为平坦区域,黄框为边缘区域,铝框为角点区域。
matlab代码如下:
clear all; close all; clc;
img=double(imread('lena.jpg'));
[m n]=size(img);
imshow(img,[])
[Ix Iy]=gradient(img);
Ix2=Ix.^2;
Iy2=Iy.^2;
Ixy=Ix.*Iy;
k=1;
lambda=zeros(m*n,2);for i=1:mfor j=1:n
st=[Ix2(i,j) Ixy(i,j);Ixy(i,j) Iy2(i,j)]; %结构张量
K=det(st); %求行列式
H=trace(st); %求迹
%所有的判断都是近似的
%if H<50%认为是平坦区域
%if H>50 && abs(K)<0.01*10^(-9) %认为是边缘区域if H>50 && abs(K)>0.01*10^(-9) %认为是角点区域
img(i,j)=255;endlambda(k,:)=[K H];
k=k+1;end
endfigure;
plot(lambda(:,1),lambda(:,2),'.');
ylabel('trace');xlabel('det');
figure;
imshow(img,[])
结构张量 matlab 图像,图像的结构张量MATLAB代码相关推荐
- matlab 膨胀 结构元,图像形态学膨胀 结构元素
宽度W,高度H 的图像,做膨胀操作,如果膨胀的结构元素structure element,大小为kw,kh,那么就需要做W*H*kw*kh次运算,运算量比较大. 根据图像形态学的理论,膨胀满足结合律, ...
- 【阿里云课程】图像翻译GAN结构与应用
大家好,继续更新有三AI与阿里天池联合推出的深度学习系列课程,本次更新内容为第11课中的一节,介绍如下: 图像翻译GAN结构与应用 本次课程是阿里天池联合有三AI推出的深度学习系列课程第11期,深度生 ...
- ITK:对图像中的结构进行分割
ITK:对图像中的结构进行分割 内容提要 输出结果 C++实现代码 内容提要 根据用户提供的边缘电势图对图像中的结构进行分割. 输出结果 使用的参数: 左心室:81114 5.0 1.0 -0.5 3 ...
- ITK:使用平面结构元素腐蚀二进制图像
ITK:使用平面结构元素腐蚀二进制图像 内容提要 输出结果 C++实现代码 内容提要 使用平面(框)结构元素腐蚀二进制图像. 输出结果 C++实现代码 #include "itkImageF ...
- 单通道图像保存_3D图像展示篇结构更清晰
3D图像展示 之前的帖子中提到了3D图像的各种采集方法,我们获取Z-Stack图像后需要选择适合图像的展示模式,让大家可以直观的了解样品结构. 3D扫描基础篇--结构更清晰 3D扫描Plus--厚样品 ...
- python内存结构_陈天奇:内存张量结构DLPack的PythonAPI来了
陈天奇:内存张量结构DLPack的PythonAPI来了 新智元2021-02-28 14:25:22 [新智元导读]DLPack是一种开放的内存张量结构,用于在框架之间共享张量,近日,开发者陈天奇更 ...
- OpenCV中图像Mat存储格式和MATLAB中图像Mat存储格式的区别
首先,看一下图像中的宽高与笛卡尔坐标系之间的关系如下图所示,即x与width(cols)对应,y与height(rows)对应,x是按列来进行变化,y按行变化. OpenCV读入图像以Mat形式存储时 ...
- matlab中的图像,MATLAB中图像的基本操作
MATLAB中图像的基本操作 1.读取.显示图片 MATLAB中提供了immread()与imshow()函数读取和显示图片.其中读取函数imread()原型: imread: A= imread(f ...
- Matlab:图像数据保存
目录: 前言 读取图像 图像的存储 前言 在下载完一些数据集的做训练的时候,发现了很多不规范的命名,因此,查询了一下图片存储以及改名的方法,学习完后,写下了本篇blog,希望大家喜欢. 读取图像 图像 ...
最新文章
- Web.config中连接字符串的加密和解密[转载]
- List与逗号分隔的字符串相互转换
- 极简实用的Asp.NetCore模块化框架决定免费开源了
- 不当败家子的原因......
- 一夜爆火的SLAM技术即将颠覆哪些领域
- 重磅 | 阿里AI labs百万美元年薪聘请两位顶级视觉科学家
- redis 首次请求_Redis主从复制
- ajax post请求发送数组后台接收
- Devexpress VCL Build v2014 vol 14.2.6 发布
- 【转】LPCTSTR,LPWSTR, PTSTR, LPTSTR区别
- 一条让人不安的坐地龙
- 主流加密方式和工具比较
- 在Win10下搭建web服务器,使用本机IP不能访问,但是使用localhos或127.0.0.1可以正常访问的解决办法...
- Json简介与基本使用
- java在浏览器打开word,如何直接在浏览器中打开word文档
- python:小鱼的航程
- installation of package ‘ ‘ had non-zero exit status
- c语言贪吃蛇大作业报告,C语言贪吃蛇实验报告
- 写博客的主要动力来源
- STM32F103C8T6读取气压计MS5611,I2C读取模式
热门文章
- 计算机毕业设计-基于ssm+vue的科研成果管理系统-高校科研管理系统java代码
- c语言与画师ai,从最简单的方式教你搞一个ai(一)
- 置信区间构建---商务与经济统计+深入浅出统计学
- 数学建模学习笔记02之席位分配问题的Hamilton方法与Matlab语言实现
- C#进程调度的模拟实现:模拟先来先服务调度算法、短作业优先调度算法和优先级调度算法(考虑非抢占式和抢占式),进行算法评价,输出调度结果和算法评价指标。
- Sqlserver2019卸载
- python简单实用案例_分享10个给Python小白看的实用案例,入门Python就在这里了
- 掌舵人离职 股价崩溃:Nutanix怎么了?
- 机器学习:手写数字识别(Hand-written digits recognition)小项目
- 解决Taro微信小程序没有FromData