侵权投诉

简述图像的测量之投影与纹理

新机器视觉 2021-04-26 14:34 次阅读

一、投影

水平投影有什么作用呢?

可以起到一个定位的作用,比如说,我们想要定位车牌号。我们把图像处理之后,用垂直投影,可以很快的对其进行定位以即分割

水平投影的实现步骤

图像二值化,物体为黑,背景为白。

循环各行,依次判断每一列的像素是否为黑,统计所有黑像素的个数。设该行共有M个黑像素,则把该行从第一列到第M列设置为黑

垂直投影的实现步骤

图像二值化,物体为黑,背景为白。

循环各列,依次判断每一行的像素是否为黑,统计所有黑像素的个数。设该列共有M个黑像素,则把该列从第一行到第M行设置为黑

效果图如下

23ee69e4-a648-11eb-aece-12bb97331649.jpg

水平投影效果如下

2415f0ae-a648-11eb-aece-12bb97331649.jpg

2428f910-a648-11eb-aece-12bb97331649.jpg

二、纹理分析

什么是纹理呢?

纹理就是指在图像中反复出现的局部模式和他们的排列规则

纹理特征反应了物体本身的属性,有助于将两种不同的物理分开来

通过对图像的纹理分析获得关于景物纹理特征和结构的定景分析描述和解释。这就是图像纹理分析的任务。

纹理是图像的像素灰度级或者颜色的某种变化,反复出现纹理基元和它的排列规则。而且这种变化是空间排列的

纹理是由纹理级元组测而成的

那什么是纹理分析呢?

纹理分析是指通过图像处理技术抽取出纹理特征,获得纹理的定量或者定性描述的处理过程,获得纹理的定量或者定性描述的处理过程,它首先从像素触发,检测出纹理基元,找出纹理基元排列的信息,建立纹理基元的模型,通过纹理分析获取纹理基元的排列信息及分布信息

纹理分析的基础方法

统计方法

1. 空间域:基于统计图像像素灰度级的分布状况,利用直方图

2. 频域:通过傅里叶变换将图像变换到频率域然后抽取相应的象征量

结构方法:用于印刷或者版画样等一类纹理基元及其排列比较规则的图像

直方图统计特征分析法

大体步骤如下

1. 对于一副图像,选择合适的领域大小

2. 对每个像素,计算出其领域中的灰度直方图

3. 比较求出的直方图与已知的各种纹理基元的直方图之间的相似性。

4. 若相似,说明存在已知的纹理基元

如何判断直方图的相似性呢?

均值方差法

求出两个图像直方图的均值和方差,如果两幅图像的均值和方差相差均在阈值之内,则说明两个直方图是相似的。

直方图的均值:所有像素值相加除以像素个数

直方图的方差:每一个颜色减去均值的平方,再乘以颜色的个数再除以总个数。

该算法实现起来非常简单

Python

def Texture_1(img1,img2):

def getStatic(img):

static=np.zeros(shape=256,dtype=int)

for y in range(0,len(img)):

for x in range(0,len(img[y])):

c=img[y,x,0]

static[c]=static[c]+1

return static

# 先统计直方图

static1=getStatic(img1)

static2=getStatic(img2)

s1=0

s2=0

#再计算直方图的平均灰度

for i in range(0,256):

s1=s1+static1[i]*i

s2=s2=static2[i]*i

avg1=s1/(len(img1)*len(img1[0]))

avg2 = s2 / (len(img2) * len(img2[0]))

#再计算方差

for c in range(0,256):

t1=(c-avg1)*static1[c]

t2=(c-avg2)*static2[c]

t1=t1/(len(img1)*len(img1[0]))

t2=t2/(len(img2)*len(img2[0]))

return np.abs(t1-t2)

Kolmogorov-Smirnov检测法

对于两幅图像,分别求出其累计直方图,然后取其累计直方图差值的最大值

H(z)=int_{0}^{Z}h(x)dxH(z)=∫0Zh(x)dx

KS=max|H_1(z)-H_2(Z)|KS=max∣H1(z)−H2(Z)∣

然后再求出直方图之间差值的的和值,为SD

SD=sum h_1(z)-h_2(z)SD=∑h1(z)−h2(z)

如果|KS-SD|∣KS−SD∣在阈值之内,则相似

Python

def Texture_2(img1,img2):

#下面是用来求一副图像的直方图

def getStatic(img):

static=np.zeros(shape=256,dtype=int)

for y in range(0,len(img)):

for x in range(0,len(img[y])):

c=img[y,x,0]

static[c]=static[c]+1

return static

#下面的函数是用来求一副图像的累计直方图

def getStatic1(img):

static=np.zeros(shape=256,dtype=int)

for y in range(0,len(img)):

for x in range(0,len(img[y])):

c=img[y,x,0]

static[c]=static[c]+1

if c》0:

static[c]=static[c]+static[c-1]

return static

static1=getStatic(img1)

static2=getStatic(img2)

# 用来参数KS

KS=np.max(static1-static2)

# 用来求参数SD

SD=np.sum((getStatic(img1)-getStatic(img2)),axis=0)

return np.abs(KS-SD)

边缘方向直方图分析法

灰度级直方图不能反应图像的二维灰度变化,图像边缘包含有大量的二维信息,取沿着边缘走向的像素的领域,分析其直方图,若在直方图上的某一个灰度范围内有尖峰,可以说明在这个范围内,纹理具有方向性。因此,单纯的分析边缘方向的直方图可以得到一些纹理信息

图像自相关函数分析法

P(x,y)=frac{sum_{i=0}sum_{j=0}f(i,j)f(i+x,j+y)}{sum_{i=0}sum_{j=0} f(i,j)}\ d=(x^2+y^2)^{frac{1}{2}}P(x,y)=∑i=0∑j=0f(i,j)∑i=0∑j=0f(i,j)f(i+x,j+y)d=(x2+y2)21利用p(x,y)随着x,y大小而变化的规律可以找到描述图像的纹理特征。

自相关函数随着x、y大小而变化,与图像纹理粗细的变化有者对应的关系,如果纹理比较粗,则P(x,y)随着d增加而下降速度较慢,如果纹理比较细,则随着d增加而下降速度较快

灰度共生矩阵特征分析法

因为灰度级直方图分析法无法反应出像素之间灰度级空间相关性的规律。所以是有一定缺陷的,而灰度共生矩阵特征分析法,很好点的解决了这个问题。

相邻某一间隔的两个像素,他们之间要么具有相同的灰度级,要么具有不相同的灰度级,如果能找到这样两个像素的联合分布的统计形式,对于图像的纹理分析很有意义

灰度-梯度共生矩阵分析法

将其灰度进行正规化处理

利用梯度算子,可以得到梯度图像

经过正规化处理,可以得到两个正规化矩阵:灰度矩阵、梯度矩阵

正规化处理

每个像素乘以它的灰度值的个数,然后除以最大值

编辑:jq

收藏 人收藏
分享:

评论

相关推荐

为什么要用C语言实现面向对象呢?

不知道有多少人去了解过语言的发展史,早期C语言的语法功能其实比较简单。随着应用需求和场景的变化,C语....
的头像 硬件攻城狮 发表于 06-12 17:55 26次 阅读
为什么要用C语言实现面向对象呢?

你们知道为什么航天器、导弹喜欢用单片机,而不是嵌入式系统吗

一、前言 前几天和一个在某研究所的发小聊天,他说:现在的航空、航天和导弹等武器装备中,控制系统几乎都....
的头像 硬件攻城狮 发表于 06-12 17:18 24次 阅读
你们知道为什么航天器、导弹喜欢用单片机,而不是嵌入式系统吗

基于使用双极点RC低通滤波器推导代数传递函数

对于某些非常简单的电路(在本例中为双极点RC低通滤波器),可以非常容易地推导出代数传递函数,并查看电....
发表于 06-12 09:07 8次 阅读
基于使用双极点RC低通滤波器推导代数传递函数

一个函数究竟能不能超过50行呢?

有些读者可能看到过类似这样的描述,而自己做项目时,很多函数都比较多(超过50行),就会怀疑自己这样写....
的头像 strongerHuang 发表于 06-11 12:46 112次 阅读
一个函数究竟能不能超过50行呢?

matlab升级2021a版本后有哪些函数需要替换?

之前有文章提到了randi函数替换randint函数,但还有很多函数也已经不用了。我之前曾经用过rc....
的头像 通信工程师专辑 发表于 06-10 16:44 112次 阅读
matlab升级2021a版本后有哪些函数需要替换?

探究音频冗余的主要表现形式

数字信号有自身相应的缺点,即存储容量需求的增加及传输时信道容量要求的增加。以CD为例,其采样率为44....
的头像 讯维官方公众号 发表于 06-09 15:57 95次 阅读
探究音频冗余的主要表现形式

在目前深度学习中比较普及的“物件检测”应用

接下来的重点,就是在目前深度学习中比较普及的“物件检测”应用,重点主要有以下三部分: 1. 简单说明....
的头像 NVIDIA英伟达企业解决方案 发表于 06-09 15:46 121次 阅读
在目前深度学习中比较普及的“物件检测”应用

二维材料系统可实现单光子发射器和自旋量子比特

二维材料系统可实现单光子发射器和自旋量子比特,为新型量子现象和技术应用开辟了一个崭新的舞台。例如,二....
的头像 知社学术圈 发表于 06-09 11:52 263次 阅读
二维材料系统可实现单光子发射器和自旋量子比特

手把手教你如何自制轮式机器人

击上方“果果小师弟”,选择“置顶/星标公众号” 摘要:制作这个项目的起因是大一下学期那会儿我通过学校....
的头像 硬件攻城狮 发表于 06-07 15:36 294次 阅读
手把手教你如何自制轮式机器人

白盒模糊测试的隐藏路径搜索方案综述

针对白盒模糊测试中的环境交互问题,提岀一种基于外部函数探测和校正的隐藏路径搜索方案 HPSBEF。利....
发表于 06-07 14:56 10次 阅读
白盒模糊测试的隐藏路径搜索方案综述

为什么要用C语言实现面向对象呢

不知道有多少人去了解过语言的发展史,早期C语言的语法功能其实比较简单。随着应用需求和场景的变化,C语....
的头像 硬件攻城狮 发表于 06-04 17:44 344次 阅读
为什么要用C语言实现面向对象呢

深度解读epoll 的原理

epoll 可以说是编写高性能服务端程序必不可少的技术,在介绍 epoll 之前,我们先来了解一下 ....
的头像 Linux爱好者 发表于 06-04 16:56 180次 阅读
深度解读epoll 的原理

关于Python 的11种经典数据降维算法

网上关于各种降维算法的资料参差不齐,同时大部分不提供源代码。这里有个 GitHub 项目整理了使用 ....
的头像 数据分析与开发 发表于 06-04 15:03 93次 阅读
关于Python 的11种经典数据降维算法

do{...} while(0U) 这种代码的作用和意义

在一些项目中,我们可能看到过很多,在学习的时候没有见过的代码,比如 do{...} while(0U....
的头像 strongerHuang 发表于 06-04 14:00 142次 阅读
do{...} while(0U) 这种代码的作用和意义

华芯微特MCU的嵌套向量中断控制器与外部中断/事件控制器的使用方法

01. 嵌套向量中断控制器(NVIC) NVIC的全称是Nested vectoredinterru....
的头像 电子发烧友网工程师 发表于 06-04 12:08 230次 阅读
华芯微特MCU的嵌套向量中断控制器与外部中断/事件控制器的使用方法

全面解读目前LVGL的应用小知识

概述 本文介绍目前LVGL的应用小知识,希望对采用MCU设计UI界面的用户有所启发,开发出界面更友好....
的头像 电子发烧友网工程师 发表于 06-04 12:01 423次 阅读
全面解读目前LVGL的应用小知识

十六进制数的表示方法

十六进制数的基数是16,采用的数码是0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F。....
的头像 倩倩 发表于 06-04 11:02 284次 阅读
十六进制数的表示方法

解读NAND Flash芯片K9F1208在uPSD3234A的应用

以Samsung NAND Flash器件K9F1208为例,对比NAND Flash和NOR Fl....
的头像 电子发烧友网工程师 发表于 06-03 18:01 151次 阅读
解读NAND Flash芯片K9F1208在uPSD3234A的应用

基于可编程哈希函数的HIBE加密方案

在标准模型下,格上基于分级身份的加密(HBE)方案的陷门生成计算复杂度较高。针对该问题,提出种基于可....
发表于 06-03 15:57 14次 阅读
基于可编程哈希函数的HIBE加密方案

通信原理与matlab仿真v3:如何确定回溯长度呢

一起来看接收机的程序。这里的重点内容是vitdec函数的使用!本文给出硬判决下的误码性能!后续会给出....
的头像 通信工程师专辑 发表于 06-03 09:21 156次 阅读
通信原理与matlab仿真v3:如何确定回溯长度呢

任务函数及任务调用

发表于 06-02 14:14 202次 阅读
任务函数及任务调用

golang反射和接口是如何工作 使用反射有什么注意点?

【导读】golang反射和接口是如何工作?使用反射有什么注意点?本文对go反射做了详细介绍。 反射用....
的头像 Linux爱好者 发表于 06-02 11:44 187次 阅读
golang反射和接口是如何工作 使用反射有什么注意点?

探究海康威视摄像机中的重大漏洞

前言 虹科Vdoo的安全研究团队对领先的物联网产品和安全设备进行了大规模的安全研究,为了提高效率和透....
的头像 电子发烧友网工程师 发表于 06-01 15:40 339次 阅读
探究海康威视摄像机中的重大漏洞

如何实现自定义串口通信协议?

有一些初学者总觉得通信协议是一个很复杂的知识,把它想的很高深,导致不知道该怎么学。 同时,偶尔有读者....
的头像 strongerHuang 发表于 06-01 10:01 163次 阅读
如何实现自定义串口通信协议?

探究爱Verilog HDL的时间尺度`timescale

`timescale命令用来说明跟在该命令后的模块的时间单位和时间精度。使用`timescale命令....
的头像 电子发烧友网工程师 发表于 06-01 09:55 174次 阅读
探究爱Verilog HDL的时间尺度`timescale

新手 RISC-V 编程应该注意哪几点内容

原文: https://blog.stephenmarz.com/2021/05/12/tips-t....
的头像 strongerHuang 发表于 06-01 09:14 123次 阅读
新手 RISC-V 编程应该注意哪几点内容

解析C语言入门基础之输入和输出

01 — 标准输入和标准输出 在C语言里要使用标准输入和标准输出必须包含stdio.h头文件,常用的....
的头像 电子发烧友网工程师 发表于 05-31 14:05 109次 阅读
解析C语言入门基础之输入和输出

90条关于写Python 程序的建议

自己写 Python 也有四五年了,一直是用自己的“强迫症”在维持自己代码的质量。都有去看Googl....
的头像 电子发烧友网工程师 发表于 05-31 10:12 149次 阅读
 90条关于写Python 程序的建议

分享一个超级实用的源码阅读小技巧

工欲善其事必先利其器; 我发现函数调用图可以让我们更加直观地了解到源码函数直接的调用和层次关系,提高....
的头像 FPGA之家 发表于 05-29 11:50 192次 阅读
分享一个超级实用的源码阅读小技巧

不对称半桥变换器的CCM小信号传递函数

不对称半桥变换器的CCM小信号传递函数
发表于 05-29 10:26 13次 阅读
不对称半桥变换器的CCM小信号传递函数

在动态库中如何调用外部函数?

大家好,我是一个动态链接库! 这个名字,相信你一定早就如雷贯耳了。 在计算机早期时代,由于内存资源紧....
的头像 嵌入式ARM 发表于 05-28 16:34 158次 阅读
在动态库中如何调用外部函数?

单片机如何提高编程效率优化程序?

在进行8051单片机应用系统程序设计时,编程都往往少不了要直接操作系统的各个存储器地址空间。 C51....
的头像 开源嵌入式 发表于 05-27 14:16 171次 阅读
单片机如何提高编程效率优化程序?

统计量的分布

统计量的分布分析说明。
发表于 05-27 10:03 13次 阅读
统计量的分布

浅谈TMS320C32的嵌入式RTOS视频网络检测系统

介绍了基于DSP芯片TMS320C32图像处理平台的网络测试系统,给出了使用专用视频输入处理芯片SA....
的头像 电子发烧友网工程师 发表于 05-26 15:15 125次 阅读
浅谈TMS320C32的嵌入式RTOS视频网络检测系统

STM32F4 HAL库函数说明下载

STM32F4 HAL库函数说明下载
发表于 05-26 09:27 44次 阅读
STM32F4 HAL库函数说明下载

Python字符数统计函数程序

Python字符数统计函数程序免费下载。
发表于 05-25 14:35 14次 阅读
Python字符数统计函数程序

python统计词频的三种方法

python统计词频的三种方法方法。
发表于 05-25 14:33 13次 阅读
python统计词频的三种方法

剖析什么是C语言中的隐式函数声明

「1、什么是C语言的隐式函数声明」 在C语言中,函数在调用前不一定非要声明。如果没有声明,那么编译器....
的头像 嵌入式ARM 发表于 05-25 09:38 136次 阅读
剖析什么是C语言中的隐式函数声明

利用可分离残差卷积和语义补偿的U-Net裂缝分割

坝面缺陷检测是水利枢纽安全巡检的关键环节,但复杂环境下坝面图像存在干扰噪声大和像素不均衡等冋题造成坝....
发表于 05-24 16:40 13次 阅读
利用可分离残差卷积和语义补偿的U-Net裂缝分割

探究西门子SCL-基本数据类型变量的赋值

赋值 当一个值被指定,变量的当前值被通过表达式指定的新的值代替。此表达式也能够包含函数标识符,其被语....
的头像 机器人及PLC自动化应用 发表于 05-24 14:56 170次 阅读
探究西门子SCL-基本数据类型变量的赋值

更精确电子结构的展示—新软件的作用

Wannier函数是评估固体材料中各种电子性质的有力工具,其应用范围涵盖电极化和轨道磁化以及拓扑性质....
的头像 知社学术圈 发表于 05-24 10:24 137次 阅读
更精确电子结构的展示—新软件的作用

实时频谱分析仪中如何选择合适的FFT窗函数

摘要 本文主要介绍了常见的窗函数以及窗函数有什么用,以及在实时频谱分析中,该如何选择合适的加窗方式。....
的头像 电子发烧友网工程师 发表于 05-24 09:11 207次 阅读
实时频谱分析仪中如何选择合适的FFT窗函数

微分方程的算子形式和拉普拉斯变换式之间的是什么关系?

一、什么是微分算子符号? 描述线性系统的激励函数和响应函数间关系的微分方程,具有以下形式: 式中 为....
的头像 模拟札记 发表于 05-20 15:06 198次 阅读
微分方程的算子形式和拉普拉斯变换式之间的是什么关系?

你们知道什么是时域分析法 为什么需要卷积积分?

分析线性系统的古典方法是微分方程法。描述系统的微分方程中,包含有激励函数和响应函数以及它们对时间的各....
的头像 模拟札记 发表于 05-20 13:59 175次 阅读
你们知道什么是时域分析法 为什么需要卷积积分?

如何正确理解系统的零输入响应

系统的零输入响应是当系统没有外加激励信号作为输入时的响应。系统的输入信号去除以后,输出的响应信号一般....
的头像 模拟札记 发表于 05-19 16:08 518次 阅读
如何正确理解系统的零输入响应

一种为小样本文本分类设计的结合数据增强的元学习框架

01 研究背景及动机 近些年,元学习已经成为解决小样本问题的主流技术,并且取得不错的成果。然而,由于....
的头像 深度学习自然语言处理 发表于 05-19 15:54 389次 阅读
一种为小样本文本分类设计的结合数据增强的元学习框架

对复杂的金融工具进行设计、定价和对冲分析

对于固定收益建模,您可以计算几种类型的证券和衍生品的价格、收益率、价差和敏感度值,包括可转换债券、抵....
的头像 MATLAB 发表于 05-18 14:59 171次 阅读
对复杂的金融工具进行设计、定价和对冲分析

你咋知道怎么在IP的kernel module里设置并使用IP interrupt吗

有时我们需要为官方 IP 或者自己创建的 IP 生成 kernel module,然后在 linux....
的头像 电子发烧友网工程师 发表于 05-18 11:48 222次 阅读
你咋知道怎么在IP的kernel module里设置并使用IP interrupt吗

简述OpenVINO™ + ResNet实现图像分类

推理引擎(IE)应用开发流程 与相关函数介绍 通过OpenVINO的推理引擎跟相关应用集成相关深度学....
的头像 英特尔物联网 发表于 05-18 09:23 194次 阅读
简述OpenVINO™ + ResNet实现图像分类

可提升全局寻优精度的改进灰狼优化算法

在标准灰狼优化算法寻优的中后期,由于衰减因子减小,灰狼群体中的个体均向领导层灰狼所在区域靠近,导致算....
发表于 05-17 16:51 27次 阅读
可提升全局寻优精度的改进灰狼优化算法

基于混合整数规划的航空停机位优化调度方法

发表于 05-17 16:40 12次 阅读
基于混合整数规划的航空停机位优化调度方法

Verilog的打印系统函数有哪几类? 在使用Verilog时有哪些注意事项?

Verilog的打印系统函数有哪几类? 在使用Verilog时有哪些注意事项? ...
发表于 04-30 06:30 0次 阅读
Verilog的打印系统函数有哪几类? 在使用Verilog时有哪些注意事项?

请大家帮忙验证一个传递函数

如图有源积分部分,之前拿到的传递函数如图 其中T3=R3C2,T4=RfC2 但是我计算的时候不管是用理想运放计算还是非理想运...
发表于 04-29 14:00 606次 阅读
请大家帮忙验证一个传递函数

如何写一个简易的printf函数?

如何写一个简易的printf函数?
发表于 04-28 06:47 0次 阅读
如何写一个简易的printf函数?

lseek()函数怎么使用?

lseek()函数怎么使用?
发表于 04-28 06:01 0次 阅读
lseek()函数怎么使用?

如何利用函数参数和返回值来提高嵌入式软件质量?

如何利用函数参数和返回值来提高嵌入式软件质量?...
发表于 04-27 07:08 0次 阅读
如何利用函数参数和返回值来提高嵌入式软件质量?

代码回调函数问题(求教大佬)

请问,这是DMAhal库内存到内存模式的中断服务函数代码,我标注的那个函数指针是如何实现回调函数的,如果有空可以帮我解答一下...
发表于 04-26 08:45 808次 阅读
代码回调函数问题(求教大佬)

类成员函数中const的使用,有什么注意事项?

类成员函数中const的使用,有什么注意事项?
发表于 04-26 06:42 0次 阅读
类成员函数中const的使用,有什么注意事项?

请问一下函数的调用过程是怎样的?

函数的调用过程是怎样的? 在父函数调用子函数时,通常会执行的步骤 在子函数被调用时,通常会执行的步骤 ...
发表于 04-20 06:10 0次 阅读
请问一下函数的调用过程是怎样的?

在main函数运行之前,你不得不知的那些事

在main函数运行之前,不得不知的那些事 在c_int00函数中完成的功能有哪些? ...
发表于 04-20 06:03 0次 阅读
在main函数运行之前,你不得不知的那些事

DLPC6421 适用于 DLP470TP (0.47 4K UHD) DMD 的 DLP® 显示控制器

DLPC6421是DLP 4K UHD显示芯片组的数字显示控制器。两个DLPC6421显示控制器以及DLP470TP DMD和DLPA3000 /DLPA3005电源管理组成芯片组。该解决方案非常适合需要高分辨率和高亮度且小尺寸的显示系统。为确保可靠运行,DLPC6421显示控制器必须始终与DLP470TP DMD和DLPA3000 /DLPA3005电源管理集成电路一起使用。 特性 双DLP控制器支持使用DLP470TP数字微镜器件(DMD)进行高达4K超高清(UHD)分辨率显示 高达4K,60 Hz 高达240 Hz,1080p 高达120 Hz(3D),1080p 提供一个60位输入像素接口: RGB数据格式 每个颜色10位 像素时钟支持160 MHz(60位) 高速,低压差分信号(LVDS)DMD接口 微处理器外设 三I 2 C端口,一个UART端口和一个SSP端口 一个USB 1.1从端口 图像处理 多个图像处理算法< /li> 帧速率转换 ColorCoordinate Adjustment 可编程颜色空间转换 可编程Degamma andSplash 集成支持3- DDisplay 1-D Keystone 集成时钟生成电路 在单个20 MHz晶振上运行 集成扩频时钟 外部存储器支持 微处理器并行闪存和PWM序列 516...
发表于 01-08 17:48 404次 阅读
DLPC6421 适用于 DLP470TP (0.47 4K UHD) DMD 的 DLP® 显示控制器