tamura纹理特征 JAVA_(zz)Tamura纹理特征的matlab实现(一)---粗糙度

2023-10-23 19:51

本文主要是介绍tamura纹理特征 JAVA_(zz)Tamura纹理特征的matlab实现(一)---粗糙度,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

搜了好久也没找到Tamura纹理特征的实现代码,于是自己动手丰衣足食,找出了最原始的Tamura的论文《Textural

Features Corresponding to Visual

Perception》来研读。今天下午实现了粗糙度(coarseness)部分,与大家共享,有错误的地方,还望大家指正。后续的对比度(contrast)、方向度(directionality)、线性度(linelikeness)、规则度(regularity)、粗略度(roughness)会陆续实现并共享。

Tamura纹理特征要比灰度共生矩阵得到的纹理特征更直观,在视觉效果上更有优势,由于比较懒,一直避重就轻,到今天终于要直面问题了,代码如下:

coarseness.m

%graypic为待处理的灰度图片,2^kmax为最大窗口

function Fcrs=coarseness(graypic,kmax)

%获取图片大小

[h,w]=size(graypic);

%平均灰度值矩阵A

A=zeros(h,w,2^kmax);

%计算有效可计算范围内每个点的2^k邻域内的平均灰度值

for i=2^(kmax-1)+1:h-2^(kmax-1)

for j=2^(kmax-1)+1:w-2^(kmax-1)

for k=1:kmax

A(i,j,k)=mean2(graypic(i-2^(k-1):i+2^(k-1)-1,j-2^(k-1):j+2^(k-1)-1));

end

end

end

%对每个像素点,计算在水平和垂直方向上不重叠窗口之间的Ak差

for i=1+2^(kmax-1):h-2^(kmax-1)

for j=1+2^(kmax-1):w-2^(kmax-1)

for k=1:kmax

Eh(i,j,k)=abs(A(i+2^(k-1),j,k)-A(i-2^(k-1),j));

Ev(i,j,k)=abs(A(i,j+2^(k-1),k)-A(i,j-2^(k-1)));

end

end

end

%对每个像素点计算使E达到最大值的k

for i=2^(kmax-1)+1:h-2^(kmax-1)

for j=2^(kmax-1)+1:w-2^(kmax-1)

[maxEh,p]=max(Eh(i,j,:));

[maxEv,q]=max(Ev(i,j,:));

if

maxEh>maxEv

maxkk=p;

else

maxkk=q;

end

Sbest(i,j)=2^maxkk;

%每个像素点的最优窗口大小为2^maxkk

end

end

%所有Sbest的均值作为整幅图片的粗糙度

Fcrs=mean2(Sbest);

调用:

image=rgb2gray(imread('example.jpg'));

f=coarseness(image,5)

Tamura纹理特征的matlab实现(二)---对比度

a4c26d1e5885305701be709a3d33442f.png (2010-01-13 21:40:27)

TE<

a4c26d1e5885305701be709a3d33442f.png转载TE<

var $tag='tamura,纹理特,对比度,it'; var

$tag_code='c57dde215fc1a8b3216796890dd4f569'; var

$r_quote_bligid='59ead5d90100gx4v'; var $worldcup='0'; var

$worldcu

这篇关于tamura纹理特征 JAVA_(zz)Tamura纹理特征的matlab实现(一)---粗糙度的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/270105

相关文章

Idea实现接口的方法上无法添加@Override注解的解决方案

《Idea实现接口的方法上无法添加@Override注解的解决方案》文章介绍了在IDEA中实现接口方法时无法添加@Override注解的问题及其解决方法,主要步骤包括更改项目结构中的Languagel... 目录Idea实现接China编程口的方法上无法添加@javascriptOverride注解错误原因解决方

JavaWeb-WebSocket浏览器服务器双向通信方式

《JavaWeb-WebSocket浏览器服务器双向通信方式》文章介绍了WebSocket协议的工作原理和应用场景,包括与HTTP的对比,接着,详细介绍了如何在Java中使用WebSocket,包括配... 目录一、概述二、入门2.1 POM依赖2.2 编写配置类2.3 编写WebSocket服务2.4 浏

轻松上手MYSQL之JSON函数实现高效数据查询与操作

《轻松上手MYSQL之JSON函数实现高效数据查询与操作》:本文主要介绍轻松上手MYSQL之JSON函数实现高效数据查询与操作的相关资料,MySQL提供了多个JSON函数,用于处理和查询JSON数... 目录一、jsON_EXTRACT 提取指定数据二、JSON_UNQUOTE 取消双引号三、JSON_KE

MySql死锁怎么排查的方法实现

《MySql死锁怎么排查的方法实现》本文主要介绍了MySql死锁怎么排查的方法实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧... 目录前言一、死锁排查方法1. 查看死锁日志方法 1:启用死锁日志输出方法 2:检查 mysql 错误

配置springboot项目动静分离打包分离lib方式

《配置springboot项目动静分离打包分离lib方式》本文介绍了如何将SpringBoot工程中的静态资源和配置文件分离出来,以减少jar包大小,方便修改配置文件,通过在jar包同级目录创建co... 目录前言1、分离配置文件原理2、pom文件配置3、使用package命令打包4、总结前言默认情况下,

Java文件与Base64之间的转化方式

《Java文件与Base64之间的转化方式》这篇文章介绍了如何使用Java将文件(如图片、视频)转换为Base64编码,以及如何将Base64编码转换回文件,通过提供具体的工具类实现,作者希望帮助读者... 目录Java文件与Base64之间的转化1、文件转Base64工具类2、Base64转文件工具类3、

java获取图片的大小、宽度、高度方式

《java获取图片的大小、宽度、高度方式》文章介绍了如何将File对象转换为MultipartFile对象的过程,并分享了个人经验,希望能为读者提供参考... 目China编程录Java获取图片的大小、宽度、高度File对象(该对象里面是图片)MultipartFile对象(该对象里面是图片)总结java获取图片

CSS3中使用flex和grid实现等高元素布局的示例代码

《CSS3中使用flex和grid实现等高元素布局的示例代码》:本文主要介绍了使用CSS3中的Flexbox和Grid布局实现等高元素布局的方法,通过简单的两列实现、每行放置3列以及全部代码的展示,展示了这两种布局方式的实现细节和效果,详细内容请阅读本文,希望能对你有所帮助... 过往的实现方法是使用浮动加

Java通过反射获取方法参数名的方式小结

《Java通过反射获取方法参数名的方式小结》这篇文章主要为大家详细介绍了Java如何通过反射获取方法参数名的方式,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录1、前言2、解决方式方式2.1: 添加编译参数配置 -parameters方式2.2: 使用Spring的内部工具类 -

Go Mongox轻松实现MongoDB的时间字段自动填充

《GoMongox轻松实现MongoDB的时间字段自动填充》这篇文章主要为大家详细介绍了Go语言如何使用mongox库,在插入和更新数据时自动填充时间字段,从而提升开发效率并减少重复代码,需要的可以... 目录前言时间字段填充规则Mongox 的安装使用 Mongox 进行插入操作使用 Mongox 进行更